From c0513268bd1a852b7dd8566b6c999033a2eaac32 Mon Sep 17 00:00:00 2001 From: "DESKTOP-893BK8A\\howar" Date: Thu, 14 Apr 2022 16:05:35 +0700 Subject: [PATCH] Fixed #59985 leading spaces autowrap boundary problem Bug problem: No condition for when the first character of the label is a space character Fix: Added an IF condition for when the first character is a space character The autowrap boundary treat this space character as another dummy word in the WordCache linked list and proceed to function normally, by detecting when line width is 0 --- scene/gui/label.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp index d45abe995ba..7e2d3df7d65 100644 --- a/scene/gui/label.cpp +++ b/scene/gui/label.cpp @@ -452,7 +452,13 @@ void Label::regenerate_word_cache() { } if (i < xl_text.length() && xl_text[i] == ' ') { - if (line_width > 0 || last == nullptr || last->char_pos != WordCache::CHAR_WRAPLINE) { + if (line_width == 0) { + if (current_word_size == 0) { + word_pos = i; + } + current_word_size += space_width; + line_width += space_width; + } else if (line_width > 0 || last == nullptr || last->char_pos != WordCache::CHAR_WRAPLINE) { space_count++; line_width += space_width; } else {