mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-01 13:49:16 +00:00
LibGUI: Make Breadcrumbbar resizable below current size
By making proper use of the dynamic layout system, the Breadcrumbbar can now shrink below its current (grown) size again, while still ensuring that no icon gets cut off.
This commit is contained in:
parent
6e2fc0285e
commit
29a3ff22d7
Notes:
sideshowbarker
2024-07-17 09:37:30 +09:00
Author: https://github.com/frhun
Commit: 29a3ff22d7
Pull-request: https://github.com/SerenityOS/serenity/pull/15484
Reviewed-by: https://github.com/AtkinsSJ ✅
1 changed files with 4 additions and 3 deletions
|
@ -109,7 +109,8 @@ void Breadcrumbbar::append_segment(String text, Gfx::Bitmap const* icon, String
|
|||
auto button_width = min(button_text_width + icon_width + icon_padding + 16, max_button_width);
|
||||
auto shrunken_width = icon_width + icon_padding + (icon ? 4 : 16);
|
||||
|
||||
button.set_fixed_size(button_width, 16 + 8);
|
||||
button.set_max_size(button_width, 16 + 8);
|
||||
button.set_min_size(shrunken_width, 16 + 8);
|
||||
|
||||
Segment segment { icon, text, data, button_width, shrunken_width, button.make_weak_ptr<GUI::Button>() };
|
||||
|
||||
|
@ -178,11 +179,11 @@ void Breadcrumbbar::relayout()
|
|||
|
||||
for (auto& segment : m_segments) {
|
||||
if (remaining_width > width() && !segment.button->is_checked()) {
|
||||
segment.button->set_fixed_width(segment.shrunken_width);
|
||||
segment.button->set_preferred_width(segment.shrunken_width);
|
||||
remaining_width -= (segment.width - segment.shrunken_width);
|
||||
continue;
|
||||
}
|
||||
segment.button->set_fixed_width(segment.width);
|
||||
segment.button->set_preferred_width(segment.width);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue