瀏覽代碼

LibGUI: Consider spacing for Toolbar overflow calculation

FrHun 2 年之前
父節點
當前提交
02b9461714
共有 1 個文件被更改,包括 4 次插入3 次删除
  1. 4 3
      Userland/Libraries/LibGUI/Toolbar.cpp

+ 4 - 3
Userland/Libraries/LibGUI/Toolbar.cpp

@@ -182,6 +182,7 @@ ErrorOr<void> Toolbar::update_overflow_menu()
     auto position { 0 };
     auto position { 0 };
     auto is_horizontal { m_orientation == Gfx::Orientation::Horizontal };
     auto is_horizontal { m_orientation == Gfx::Orientation::Horizontal };
     auto margin { is_horizontal ? layout()->margins().horizontal_total() : layout()->margins().vertical_total() };
     auto margin { is_horizontal ? layout()->margins().horizontal_total() : layout()->margins().vertical_total() };
+    auto spacing { layout()->spacing() };
     auto toolbar_size { is_horizontal ? width() : height() };
     auto toolbar_size { is_horizontal ? width() : height() };
 
 
     for (size_t i = 0; i < m_items.size() - 1; ++i) {
     for (size_t i = 0; i < m_items.size() - 1; ++i) {
@@ -192,7 +193,7 @@ ErrorOr<void> Toolbar::update_overflow_menu()
             break;
             break;
         }
         }
         item.widget->set_visible(true);
         item.widget->set_visible(true);
-        position += item_size;
+        position += item_size + spacing;
     }
     }
 
 
     if (!marginal_index.has_value()) {
     if (!marginal_index.has_value()) {
@@ -207,10 +208,10 @@ ErrorOr<void> Toolbar::update_overflow_menu()
         for (size_t i = marginal_index.value() - 1; i > 0; --i) {
         for (size_t i = marginal_index.value() - 1; i > 0; --i) {
             auto& item = m_items.at(i);
             auto& item = m_items.at(i);
             auto item_size = is_horizontal ? item.widget->width() : item.widget->height();
             auto item_size = is_horizontal ? item.widget->width() : item.widget->height();
-            if (position + m_button_size + margin <= toolbar_size)
+            if (position + m_button_size + spacing + margin <= toolbar_size)
                 break;
                 break;
             item.widget->set_visible(false);
             item.widget->set_visible(false);
-            position -= item_size;
+            position -= item_size + spacing;
             marginal_index = i;
             marginal_index = i;
         }
         }
     }
     }