diff options
author | Michael Alexsander <michaelalexsander@protonmail.com> | 2021-02-12 21:13:49 -0300 |
---|---|---|
committer | Michael Alexsander <michaelalexsander@protonmail.com> | 2021-02-12 21:13:49 -0300 |
commit | 85dc55a82cf66827a4e776660a2985e46529e0e2 (patch) | |
tree | 7d8fa89cd74f0aabcbced51b2f51cd995179d6f5 | |
parent | 45c6d3c5767f0ebc60ef1334aec5720680191eec (diff) |
Keep Label's min height when empty
-rw-r--r-- | scene/gui/label.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp index 453ecc802c..2997a6ebe9 100644 --- a/scene/gui/label.cpp +++ b/scene/gui/label.cpp @@ -357,21 +357,25 @@ void Label::_notification(int p_what) { } Size2 Label::get_minimum_size() const { - Size2 min_style = get_theme_stylebox("normal")->get_minimum_size(); - // don't want to mutable everything if (dirty || lines_dirty) { const_cast<Label *>(this)->_shape(); } + Size2 min_size = minsize; + + Ref<Font> font = get_theme_font("font"); + min_size.height = MAX(min_size.height, font->get_height(get_theme_font_size("font_size")) + font->get_spacing(Font::SPACING_TOP) + font->get_spacing(Font::SPACING_BOTTOM)); + + Size2 min_style = get_theme_stylebox("normal")->get_minimum_size(); if (autowrap) { - return Size2(1, clip ? 1 : minsize.height) + min_style; + return Size2(1, clip ? 1 : min_size.height) + min_style; } else { - Size2 ms = minsize; if (clip) { - ms.width = 1; + min_size.width = 1; } - return ms + min_style; + + return min_size + min_style; } } |