diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2020-12-17 09:02:01 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-17 09:02:01 +0100 |
commit | 9e49dbda2a145165269f07bc4f621211c695de52 (patch) | |
tree | ad77d80e6538f3011b7f54fce936932b698467c7 /servers/text_server.cpp | |
parent | 933cf114d880651a65082e417c05c77bf771af95 (diff) | |
parent | 06ae77a320ba7b83616e4a30b1f40152bd1d3a82 (diff) |
Merge pull request #44360 from bruvzg/ctl_punct_word_break
Add word breaks on punctuation characters.
Diffstat (limited to 'servers/text_server.cpp')
-rw-r--r-- | servers/text_server.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/servers/text_server.cpp b/servers/text_server.cpp index b2584d9ffd..30dfa60ba3 100644 --- a/servers/text_server.cpp +++ b/servers/text_server.cpp @@ -376,6 +376,7 @@ void TextServer::_bind_methods() { BIND_ENUM_CONSTANT(GRAPHEME_IS_BREAK_SOFT); BIND_ENUM_CONSTANT(GRAPHEME_IS_TAB); BIND_ENUM_CONSTANT(GRAPHEME_IS_ELONGATION); + BIND_ENUM_CONSTANT(GRAPHEME_IS_PUNCTUATION); /* Hinting */ BIND_ENUM_CONSTANT(HINTING_NONE); @@ -679,7 +680,7 @@ Vector<Vector2i> TextServer::shaped_text_get_line_breaks(RID p_shaped, float p_w Vector<Vector2i> TextServer::shaped_text_get_word_breaks(RID p_shaped) const { Vector<Vector2i> words; - const_cast<TextServer *>(this)->shaped_text_update_breaks(p_shaped); + const_cast<TextServer *>(this)->shaped_text_update_justification_ops(p_shaped); const Vector<Glyph> &logical = const_cast<TextServer *>(this)->shaped_text_sort_logical(p_shaped); const Vector2i &range = shaped_text_get_range(p_shaped); @@ -690,8 +691,8 @@ Vector<Vector2i> TextServer::shaped_text_get_word_breaks(RID p_shaped) const { for (int i = 0; i < l_size; i++) { if (l_gl[i].count > 0) { - if ((l_gl[i].flags & GRAPHEME_IS_SPACE) == GRAPHEME_IS_SPACE) { - words.push_back(Vector2i(word_start, l_gl[i].end - 1)); + if (((l_gl[i].flags & GRAPHEME_IS_SPACE) == GRAPHEME_IS_SPACE) || ((l_gl[i].flags & GRAPHEME_IS_PUNCTUATION) == GRAPHEME_IS_PUNCTUATION)) { + words.push_back(Vector2i(word_start, l_gl[i].start)); word_start = l_gl[i].end; } } |