Преглед изворни кода

LibGUI: Use full text width for Label's preferred width

A label would prefer to be exactly as wide as its contained text
requires. This makes min_width: "fit" work better.
kleines Filmröllchen пре 2 година
родитељ
комит
376e7243a9
2 измењених фајлова са 9 додато и 2 уклоњено
  1. 8 2
      Userland/Libraries/LibGUI/Label.cpp
  2. 1 0
      Userland/Libraries/LibGUI/Label.h

+ 8 - 2
Userland/Libraries/LibGUI/Label.cpp

@@ -111,7 +111,12 @@ void Label::paint_event(PaintEvent& event)
 
 void Label::size_to_fit()
 {
-    set_fixed_width(static_cast<int>(ceilf(font().width(m_text))) + m_autosize_padding * 2);
+    set_fixed_width(text_calculated_preferred_width());
+}
+
+int Label::text_calculated_preferred_width() const
+{
+    return static_cast<int>(ceilf(font().width(m_text))) + m_autosize_padding * 2;
 }
 
 int Label::text_calculated_preferred_height() const
@@ -121,6 +126,7 @@ int Label::text_calculated_preferred_height() const
 
 Optional<UISize> Label::calculated_preferred_size() const
 {
-    return GUI::UISize(SpecialDimension::Grow, text_calculated_preferred_height());
+    return GUI::UISize(text_calculated_preferred_width(), text_calculated_preferred_height());
 }
+
 }

+ 1 - 0
Userland/Libraries/LibGUI/Label.h

@@ -40,6 +40,7 @@ public:
 
     virtual Optional<UISize> calculated_preferred_size() const override;
     int text_calculated_preferred_height() const;
+    int text_calculated_preferred_width() const;
 
     Gfx::IntRect text_rect() const;