summaryrefslogtreecommitdiff
path: root/indra/llui/lltextbase.cpp
diff options
context:
space:
mode:
authorrichard <none@none>2009-10-28 15:21:23 -0700
committerrichard <none@none>2009-10-28 15:21:23 -0700
commitda58b592177cc1960e611831038cb9c39eaee4c0 (patch)
tree6f4af1524c7017b817a2e5a93c42f9061b037df8 /indra/llui/lltextbase.cpp
parent6e8c5d206ef72357bea7354f88248f671092bc0e (diff)
ext-1483 - Scrollable lists in side panel can sometimes get stuck
apparent XUI error Also fixed terminating newlines in text editors not flowing to next line reviewed by Leyla
Diffstat (limited to 'indra/llui/lltextbase.cpp')
-rw-r--r--indra/llui/lltextbase.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 653505a12e..2b1d677ffb 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -419,9 +419,6 @@ void LLTextBase::drawCursor()
return;
}
- if (!mTextRect.contains(cursor_rect))
- return;
-
// Draw the cursor
// (Flash the cursor every half second starting a fixed time after the last keystroke)
F32 elapsed = mCursorBlinkTimer.getElapsedTimeF32();
@@ -2381,7 +2378,6 @@ S32 LLNormalTextSegment::getNumChars(S32 num_pixels, S32 segment_offset, S32 lin
{
if (text[last_char] == '\n')
{
- last_char++;
break;
}
}
@@ -2401,9 +2397,14 @@ S32 LLNormalTextSegment::getNumChars(S32 num_pixels, S32 segment_offset, S32 lin
// If at the beginning of a line, and a single character won't fit, draw it anyway
num_chars = 1;
}
- if (mStart + segment_offset + num_chars == mEditor.getLength())
+
+ // include *either* the EOF or newline character in this run of text
+ // but not both
+ S32 last_char_in_run = mStart + segment_offset + num_chars;
+ // check length first to avoid indexing off end of string
+ if (last_char_in_run >= mEditor.getLength()
+ || text[last_char_in_run] == '\n')
{
- // include terminating NULL
num_chars++;
}
return num_chars;