From eaa643a4bbc8e82011714e0fa6a3090cccd04a26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Thu, 23 Oct 2025 21:39:22 +0300 Subject: [PATCH] [TextServer] Fix range for zero-width glyphs extra spacing. --- modules/text_server_adv/text_server_adv.cpp | 4 ++-- modules/text_server_fb/text_server_fb.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/text_server_adv/text_server_adv.cpp b/modules/text_server_adv/text_server_adv.cpp index 19901725f6c..8375b36b7af 100644 --- a/modules/text_server_adv/text_server_adv.cpp +++ b/modules/text_server_adv/text_server_adv.cpp @@ -6859,8 +6859,8 @@ void TextServerAdvanced::_shape_run(ShapedTextDataAdvanced *p_sd, int64_t p_star unsigned int last_non_zero_w = glyph_count - 1; if (last_run) { - for (unsigned int i = glyph_count - 1; i > 0; i--) { - last_non_zero_w = i; + for (int64_t i = glyph_count - 1; i >= 0; i--) { + last_non_zero_w = (unsigned int)i; if (p_sd->orientation == ORIENTATION_HORIZONTAL) { if (glyph_pos[i].x_advance != 0) { break; diff --git a/modules/text_server_fb/text_server_fb.cpp b/modules/text_server_fb/text_server_fb.cpp index eb892c61372..117bdeed1ab 100644 --- a/modules/text_server_fb/text_server_fb.cpp +++ b/modules/text_server_fb/text_server_fb.cpp @@ -4822,7 +4822,7 @@ bool TextServerFallback::_shaped_text_shape(const RID &p_shaped) { // Text span. int last_non_zero_w = sd->end - 1; if (i == sd->spans.size() - 1) { - for (int j = span.end - 1; j > span.start; j--) { + for (int j = span.end - 1; j >= span.start; j--) { last_non_zero_w = j; uint32_t idx = (int32_t)sd->text[j - sd->start]; if (!is_control(idx) && !(idx >= 0x200B && idx <= 0x200D)) {