summaryrefslogtreecommitdiff
path: root/scene/gui
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2020-01-06 22:26:14 +0100
committerGitHub <noreply@github.com>2020-01-06 22:26:14 +0100
commite2a6cae0c75eba84029d44449b658123ed8d6614 (patch)
tree35e14907df0714ba2d0f4b5328ef03ed58f257ee /scene/gui
parent24281cd9c9836e3efefed1fcc152195e35d7e82f (diff)
parente5a00186212d895d5a87c8e74b61d1f80748c9cc (diff)
Merge pull request #34867 from volzhs/calculate-label-size-2
Calculate label size more accurately
Diffstat (limited to 'scene/gui')
-rw-r--r--scene/gui/label.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp
index fa795361a8..df88b34f9d 100644
--- a/scene/gui/label.cpp
+++ b/scene/gui/label.cpp
@@ -103,8 +103,7 @@ void Label::_notification(int p_what) {
int lines_visible = (size.y + line_spacing) / font_h;
- // ceiling to ensure autowrapping does not cut text
- int space_w = Math::ceil(font->get_char_size(' ').width);
+ real_t space_w = font->get_char_size(' ').width;
int chars_total = 0;
int vbegin = 0, vsep = 0;
@@ -390,10 +389,9 @@ void Label::regenerate_word_cache() {
real_t current_word_size = 0;
int word_pos = 0;
- int line_width = 0;
+ real_t line_width = 0;
int space_count = 0;
- // ceiling to ensure autowrapping does not cut text
- int space_width = Math::ceil(font->get_char_size(' ').width);
+ real_t space_width = font->get_char_size(' ').width;
int line_spacing = get_constant("line_spacing");
line_count = 1;
total_char_cache = 0;
@@ -454,10 +452,9 @@ void Label::regenerate_word_cache() {
if (current_word_size == 0) {
word_pos = i;
}
- // ceiling to ensure autowrapping does not cut text
char_width = font->get_char_size(current, xl_text[i + 1]).width;
current_word_size += char_width;
- line_width += Math::ceil(char_width);
+ line_width += char_width;
total_char_cache++;
// allow autowrap to cut words when they exceed line width