summaryrefslogtreecommitdiff
path: root/scene/gui
diff options
context:
space:
mode:
authorEoin O'Neill <eoinoneill1991@gmail.com>2020-03-28 17:20:07 -0700
committerEoin O'Neill <eoinoneill1991@gmail.com>2020-03-29 14:33:17 -0700
commit2000e110a9d38ebe889f9d4e6cfb106cbcc58bc8 (patch)
treea4f8ff04e531310c730ef898978576b036fc990e /scene/gui
parentfafb0ba06df9417a22bd8deb31a61feeb24de794 (diff)
Correction to RichTextLabel Tabulation
Correct backtrack assignment to prevent excessive tabulation. Worth noting that tabulation is treated differently in RichTextLabel because of custom user-asignable tab variable which creates problems with dynamic fonts specifically.
Diffstat (limited to 'scene/gui')
-rw-r--r--scene/gui/rich_text_label.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp
index d17eec4050..ae57e963d7 100644
--- a/scene/gui/rich_text_label.cpp
+++ b/scene/gui/rich_text_label.cpp
@@ -582,13 +582,14 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int &
} else {
cw = drawer.draw_char(ci, p_ofs + Point2(align_ofs + pofs, y + lh - line_descent) + fx_offset, fx_char, c[i + 1], fx_color);
}
- } else if (previously_visible) {
+ } else if (previously_visible && c[i] != '\t') {
backtrack += font->get_char_size(fx_char, c[i + 1]).x;
}
p_char_count++;
if (c[i] == '\t') {
cw = tab_size * font->get_char_size(' ').width;
+ backtrack = MAX(0, backtrack - cw);
}
ofs += cw;