From 8fc6ff94fea7b4fa77bb5cf0baff72ad90bb84f5 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 30 Apr 2020 09:26:30 +0200 Subject: [PATCH] LibGUI: Scale TabWidget tabs according to available space In TabWidgets with the "uniform tabs" mode on, we will now scale tabs between a minimum and maximum size, distributing the available space. Partially addresses #1971. --- Libraries/LibGUI/TabWidget.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Libraries/LibGUI/TabWidget.cpp b/Libraries/LibGUI/TabWidget.cpp index db27d21484..61bf19863e 100644 --- a/Libraries/LibGUI/TabWidget.cpp +++ b/Libraries/LibGUI/TabWidget.cpp @@ -197,7 +197,13 @@ void TabWidget::paint_event(PaintEvent& event) int TabWidget::uniform_tab_width() const { - return 160; + int minimum_tab_width = 24; + int maximum_tab_width = 160; + int total_tab_width = m_tabs.size() * maximum_tab_width; + int tab_width = maximum_tab_width; + if (total_tab_width > width()) + tab_width = width() / m_tabs.size(); + return max(tab_width, minimum_tab_width); } Gfx::Rect TabWidget::button_rect(int index) const