summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Alexsander <michaelalexsander@protonmail.com>2021-02-12 21:13:49 -0300
committerMichael Alexsander <michaelalexsander@protonmail.com>2021-02-12 21:13:49 -0300
commit85dc55a82cf66827a4e776660a2985e46529e0e2 (patch)
tree7d8fa89cd74f0aabcbced51b2f51cd995179d6f5
parent45c6d3c5767f0ebc60ef1334aec5720680191eec (diff)
Keep Label's min height when empty
-rw-r--r--scene/gui/label.cpp16
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;
}
}