summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGen <z.rz2323721@gmail.com>2015-04-30 12:47:05 +0800
committerGen <z.rz2323721@gmail.com>2015-04-30 12:47:05 +0800
commitc322eddffb6ac9abc709cfdc7bdc4466bdb7b80a (patch)
treed21fc134241006531c729ca16457ddda52b0c6b8
parent57d571a1c40ac58ca47a68dbe24ab1ca717dabed (diff)
fixed a autowrap bug when word is too length.
-rw-r--r--scene/gui/label.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp
index 4069fbb553..38e7435aeb 100644
--- a/scene/gui/label.cpp
+++ b/scene/gui/label.cpp
@@ -99,7 +99,7 @@ void Label::_notification(int p_what) {
int chars_total=0;
int vbegin=0,vsep=0;
-
+
if (lines_total && lines_total < lines_visible) {
@@ -136,10 +136,9 @@ void Label::_notification(int p_what) {
if (!wc)
return;
-
+ int c = 0;
int line=0;
while(wc) {
-
/* handle lines not meant to be drawn quickly */
if (line>line_to)
break;
@@ -253,7 +252,7 @@ void Label::_notification(int p_what) {
}
for (int i=0;i<from->word_len;i++) {
-
+
if (visible_chars < 0 || chars_total<visible_chars) {
CharType c = text[i+pos];
CharType n = text[i+pos+1];
@@ -486,7 +485,7 @@ void Label::regenerate_word_cache() {
}
- if ((autowrap && line_width>=width && last_width<width) || insert_newline) {
+ if ((autowrap && line_width>=width && last && last->char_pos >= 0) || insert_newline) {
WordCache *wc = memnew( WordCache );
if (word_cache) {
@@ -525,7 +524,7 @@ void Label::regenerate_word_cache() {
set_max(line_count);
word_cache_dirty=false;
-
+
}