From 7d5a8ea0e9c22b5e9b513de6ceb49f34fe120cc3 Mon Sep 17 00:00:00 2001 From: bruvzg <7645683+bruvzg@users.noreply.github.com> Date: Thu, 17 Dec 2020 23:38:55 +0200 Subject: [PATCH] Always include space characters (including tabs and other space-like chars) into selection rectangles. --- servers/text_server.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/servers/text_server.cpp b/servers/text_server.cpp index 30dfa60ba33..68864980e21 100644 --- a/servers/text_server.cpp +++ b/servers/text_server.cpp @@ -905,7 +905,7 @@ Vector TextServer::shaped_text_get_selection(RID p_shaped, int p_start, float off = 0.0f; for (int i = 0; i < v_size; i++) { for (int k = 0; k < glyphs[i].repeat; k++) { - if (glyphs[i].count > 0 && glyphs[i].index != 0) { + if ((glyphs[i].count > 0) && ((glyphs[i].index != 0) || ((glyphs[i].flags & GRAPHEME_IS_SPACE) == GRAPHEME_IS_SPACE))) { if (glyphs[i].start < end && glyphs[i].end > start) { // Grapheme fully in selection range. if (glyphs[i].start >= start && glyphs[i].end <= end) { @@ -962,6 +962,10 @@ Vector TextServer::shaped_text_get_selection(RID p_shaped, int p_start, // Merge intersecting ranges. int i = 0; + while (i < ranges.size()) { + i++; + } + i = 0; while (i < ranges.size()) { int j = i + 1; while (j < ranges.size()) {