Ver código fonte

GItemView: Hide the horizontal scrollbar since we never need it.

This view always relayouts the content to fit the available width, so we
don't need a horizontal scrollbar. :^)
Andreas Kling 6 anos atrás
pai
commit
4d3478aa71
2 arquivos alterados com 6 adições e 2 exclusões
  1. 1 0
      LibGUI/GItemView.cpp
  2. 5 2
      LibGUI/GScrollableWidget.cpp

+ 1 - 0
LibGUI/GItemView.cpp

@@ -7,6 +7,7 @@
 GItemView::GItemView(GWidget* parent)
     : GAbstractView(parent)
 {
+    horizontal_scrollbar().set_visible(false);
 }
 
 GItemView::~GItemView()

+ 5 - 2
LibGUI/GScrollableWidget.cpp

@@ -29,8 +29,11 @@ void GScrollableWidget::resize_event(GResizeEvent& event)
 {
     update_scrollbar_ranges();
 
-    m_vertical_scrollbar->set_relative_rect(event.size().width() - m_vertical_scrollbar->preferred_size().width(), 0, m_vertical_scrollbar->preferred_size().width(), event.size().height() - m_horizontal_scrollbar->preferred_size().height());
-    m_horizontal_scrollbar->set_relative_rect(0, event.size().height() - m_horizontal_scrollbar->preferred_size().height(), event.size().width() - m_vertical_scrollbar->preferred_size().width(), m_horizontal_scrollbar->preferred_size().height());
+    int height_wanted_by_horizontal_scrollbar = m_horizontal_scrollbar->is_visible() ? m_horizontal_scrollbar->height() : 0;
+    int width_wanted_by_vertical_scrollbar = m_vertical_scrollbar->is_visible() ? m_vertical_scrollbar->width() : 0;
+
+    m_vertical_scrollbar->set_relative_rect(event.size().width() - m_vertical_scrollbar->preferred_size().width(), 0, m_vertical_scrollbar->preferred_size().width(), event.size().height() - height_wanted_by_horizontal_scrollbar);
+    m_horizontal_scrollbar->set_relative_rect(0, event.size().height() - m_horizontal_scrollbar->preferred_size().height(), event.size().width() - m_vertical_scrollbar->preferred_size().width(), width_wanted_by_vertical_scrollbar);
 
     m_corner_widget->set_visible(m_vertical_scrollbar->is_visible() && m_horizontal_scrollbar->is_visible());
     if (m_corner_widget->is_visible()) {