mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 04:17:35 +00:00
LibGUI: Improve calculated_min_size() for single-line TextEditor
TextBox now shrinks to fit the current font based on preferred line height, maintaining its historical minimum size of 40x22
This commit is contained in:
parent
7304556ff2
commit
9c2bcffe83
2 changed files with 6 additions and 3 deletions
|
@ -22,8 +22,8 @@ namespace GUI {
|
||||||
TextBox::TextBox()
|
TextBox::TextBox()
|
||||||
: TextEditor(TextEditor::SingleLine)
|
: TextEditor(TextEditor::SingleLine)
|
||||||
{
|
{
|
||||||
set_min_size({ 40, 22 });
|
set_min_size({ SpecialDimension::Shrink });
|
||||||
set_preferred_size({ SpecialDimension::OpportunisticGrow, 22 });
|
set_preferred_size({ SpecialDimension::OpportunisticGrow, SpecialDimension::Shrink });
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextBox::keydown_event(GUI::KeyEvent& event)
|
void TextBox::keydown_event(GUI::KeyEvent& event)
|
||||||
|
|
|
@ -893,8 +893,11 @@ Optional<UISize> TextEditor::calculated_min_size() const
|
||||||
{
|
{
|
||||||
if (is_multi_line())
|
if (is_multi_line())
|
||||||
return AbstractScrollableWidget::calculated_min_size();
|
return AbstractScrollableWidget::calculated_min_size();
|
||||||
|
auto constexpr cursor_padding = 4;
|
||||||
auto m = content_margins();
|
auto m = content_margins();
|
||||||
return UISize { m.left() + m.right(), m.top() + m.bottom() };
|
auto width = max(40, m.horizontal_total());
|
||||||
|
auto height = max(22, line_height() + m.vertical_total() + cursor_padding);
|
||||||
|
return UISize { width, height };
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditor::select_all()
|
void TextEditor::select_all()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue