Browse Source

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

(cherry picked from commit c0513268bd1a852b7dd8566b6c999033a2eaac32)
DESKTOP-893BK8A\howar 3 years ago
parent
commit
db5bfa398a
1 changed files with 7 additions and 1 deletions
  1. 7 1
      scene/gui/label.cpp

+ 7 - 1
scene/gui/label.cpp

@@ -452,7 +452,13 @@ void Label::regenerate_word_cache() {
 			}
 			}
 
 
 			if (i < xl_text.length() && xl_text[i] == ' ') {
 			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++;
 					space_count++;
 					line_width += space_width;
 					line_width += space_width;
 				} else {
 				} else {