Fix bug where leading and trailing spaces werent taken into account with center and right allignment.
This commit is contained in:
parent
2cfc5b8680
commit
4318ad94ac
1 changed files with 17 additions and 1 deletions
|
@ -188,7 +188,7 @@ void Label::_notification(int p_what) {
|
||||||
int spaces = 0;
|
int spaces = 0;
|
||||||
while (to && to->char_pos >= 0) {
|
while (to && to->char_pos >= 0) {
|
||||||
taken += to->pixel_width;
|
taken += to->pixel_width;
|
||||||
if (to != from && to->space_count) {
|
if (to->space_count) {
|
||||||
spaces += to->space_count;
|
spaces += to->space_count;
|
||||||
}
|
}
|
||||||
to = to->next;
|
to = to->next;
|
||||||
|
@ -420,6 +420,22 @@ void Label::regenerate_word_cache() {
|
||||||
wc->space_count = space_count;
|
wc->space_count = space_count;
|
||||||
current_word_size = 0;
|
current_word_size = 0;
|
||||||
space_count = 0;
|
space_count = 0;
|
||||||
|
} else if ((i == xl_text.length() || current == '\n') && last != nullptr && space_count != 0) {
|
||||||
|
//in case there are trailing white spaces we add a placeholder word cache with just the spaces
|
||||||
|
WordCache *wc = memnew(WordCache);
|
||||||
|
if (word_cache) {
|
||||||
|
last->next = wc;
|
||||||
|
} else {
|
||||||
|
word_cache = wc;
|
||||||
|
}
|
||||||
|
last = wc;
|
||||||
|
|
||||||
|
wc->pixel_width = 0;
|
||||||
|
wc->char_pos = 0;
|
||||||
|
wc->word_len = 0;
|
||||||
|
wc->space_count = space_count;
|
||||||
|
current_word_size = 0;
|
||||||
|
space_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (current == '\n') {
|
if (current == '\n') {
|
||||||
|
|
Loading…
Reference in a new issue