summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2015-05-19 22:26:25 -0300
committerJuan Linietsky <reduzio@gmail.com>2015-05-19 22:26:25 -0300
commit9f686563d042681eade41254a5f2f10cb0045347 (patch)
tree130ec3326424cbb0db5c570597e2e614d39e6c71
parent221443c5a2d174e52d391d15d5f1c6b5c9496d57 (diff)
fixed latin separation in label, broke it? for cjk
changed non-separatable character detection so latin works properly. This is probably incorrect. If you speak chinese, korean or japanese, please help me fix it. closes #1935
-rw-r--r--scene/gui/label.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp
index dac21275dc..27d0f568a2 100644
--- a/scene/gui/label.cpp
+++ b/scene/gui/label.cpp
@@ -378,7 +378,11 @@ void Label::regenerate_word_cache() {
if (uppercase)
current=String::char_uppercase(current);
- bool not_latin = current>=33 && (current < 65||current >90) && (current<97||current>122) && (current<48||current>57);
+ // ranges taken from http://www.unicodemap.org/
+ // if your language is not well supported, consider helping improve
+ // the unicode support in Godot.
+ bool separatable = (current>=0x2E08 && current<=0xFAFF) || (current>=0xFE30 && current<=0xFE4F);
+ //current>=33 && (current < 65||current >90) && (current<97||current>122) && (current<48||current>57);
bool insert_newline=false;
int char_width;
@@ -433,8 +437,8 @@ void Label::regenerate_word_cache() {
}
- if ((autowrap && (line_width >= width) && ((last && last->char_pos >= 0) || not_latin)) || insert_newline) {
- if (not_latin) {
+ if ((autowrap && (line_width >= width) && ((last && last->char_pos >= 0) || separatable)) || insert_newline) {
+ if (separatable) {
if (current_word_size>0) {
WordCache *wc = memnew( WordCache );
if (word_cache) {