summaryrefslogtreecommitdiffstats
path: root/modules/text_server_fb
diff options
context:
space:
mode:
authorbruvzg <7645683+bruvzg@users.noreply.github.com>2023-08-19 11:19:09 +0300
committerbruvzg <7645683+bruvzg@users.noreply.github.com>2023-08-19 11:49:34 +0300
commit07d859de25572052250512e344b88e5641bedd00 (patch)
tree1b15fe93689326aad447b08d50c5cabe211b06fb /modules/text_server_fb
parentb51ee8b029b0b9f719f01bbdd21a329e65d4d238 (diff)
downloadredot-engine-07d859de25572052250512e344b88e5641bedd00.tar.gz
[TextServer] Fix issues with character breaks, add more tests.
Diffstat (limited to 'modules/text_server_fb')
-rw-r--r--modules/text_server_fb/text_server_fb.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/modules/text_server_fb/text_server_fb.cpp b/modules/text_server_fb/text_server_fb.cpp
index bf7cc776c0..4976c70b3b 100644
--- a/modules/text_server_fb/text_server_fb.cpp
+++ b/modules/text_server_fb/text_server_fb.cpp
@@ -4084,11 +4084,17 @@ PackedInt32Array TextServerFallback::_shaped_text_get_character_breaks(const RID
ERR_FAIL_COND_V(!sd, PackedInt32Array());
MutexLock lock(sd->mutex);
+ if (!sd->valid) {
+ const_cast<TextServerFallback *>(this)->_shaped_text_shape(p_shaped);
+ }
PackedInt32Array ret;
- ret.resize(sd->end - sd->start);
- for (int i = sd->start; i < sd->end; i++) {
- ret.write[i] = i;
+ int size = sd->end - sd->start;
+ if (size > 0) {
+ ret.resize(size);
+ for (int i = 0; i < size; i++) {
+ ret.write[i] = i + 1 + sd->start;
+ }
}
return ret;
}