mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:28:12 +00:00
LibGUI: Remove calculated_min_size() for ListViews
Originally implemented to handle resizable ComboBox windows, this "feature" no longer exists, so calculating min size is no longer necessary. The calculation was also failing to account for dynamic ListViews properly. This patch simplifies things by setting ComboBox ListView's minimum size explicitly and deferring to AbstractScrollableWidget's more flexible calculated implementation otherwise. Fixes FontPicker resizing incorrectly due to overly rigid ListViews.
This commit is contained in:
parent
bd46397e1f
commit
99f28cf4ac
3 changed files with 1 additions and 15 deletions
|
@ -44,7 +44,6 @@ void ListView::update_content_size()
|
|||
auto text = model()->index(row, m_model_column).data();
|
||||
content_width = max(content_width, font().width(text.to_deprecated_string()) + horizontal_padding() * 2);
|
||||
}
|
||||
m_max_item_width = content_width;
|
||||
content_width = max(content_width, widget_inner_rect().width());
|
||||
|
||||
int content_height = item_count() * item_height();
|
||||
|
@ -268,15 +267,4 @@ void ListView::scroll_into_view(ModelIndex const& index, bool scroll_horizontall
|
|||
AbstractScrollableWidget::scroll_into_view(content_rect(index.row()), scroll_horizontally, scroll_vertically);
|
||||
}
|
||||
|
||||
Optional<UISize> ListView::calculated_min_size() const
|
||||
{
|
||||
auto min_width = horizontal_scrollbar().effective_min_size().width().as_int() + vertical_scrollbar().width() + frame_thickness() * 2;
|
||||
auto min_height = vertical_scrollbar().effective_min_size().height().as_int() + horizontal_scrollbar().height() + frame_thickness() * 2;
|
||||
auto content_exceeds_minimums = content_width() > min_width && content_height() > min_height;
|
||||
auto scrollbars_are_visible = horizontal_scrollbar().is_visible() && vertical_scrollbar().is_visible();
|
||||
if (content_exceeds_minimums || scrollbars_are_visible)
|
||||
return AbstractScrollableWidget::calculated_min_size();
|
||||
return { { m_max_item_width + frame_thickness() * 2, content_height() + frame_thickness() * 2 } };
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue