1. simon_linden
  2. viewer-rabbit

Commits

Seth ProductEngine  committed acc64f9

STORM-1234 FIXED text editor selection which was skipping the last character in line.

Added handling of the wrapped lines case when calculating the starting position for selection.

The bug is a regression caused by the fix of STORM-320 which was dealing with calculating the position of the input cursor while navigating through the lines of text with word wrapping enabled.

  • Participants
  • Parent commits c6f2f4a
  • Branches default

Comments (0)

Files changed (1)

File indra/llui/lltextbase.cpp

View file
 		}
 		else if (hit_past_end_of_line && segmentp->getEnd() >= line_iter->mDocIndexEnd)
 		{
-			// segment wraps to next line, so just set doc pos to the end of the line
-			pos = llclamp(line_iter->mDocIndexEnd - 1, 0, getLength());
+			if (getLineNumFromDocIndex(line_iter->mDocIndexEnd - 1) == line_iter->mLineNum)
+			{
+				// if segment wraps to the next line we should step one char back
+				// to compensate for the space char between words
+				// which is removed due to wrapping
+				pos = llclamp(line_iter->mDocIndexEnd - 1, 0, getLength());
+			}
+			else
+			{
+				pos = llclamp(line_iter->mDocIndexEnd, 0, getLength());
+			}
 			break;
 		}
 		start_x += text_width;