Fix textarea bug: clicking right of the end of a line caused the cursor to be in one of the next lines (#3474)
parent
75c393c915
commit
a4a377ecad
|
@ -1120,6 +1120,8 @@ s32 intlGUIEditBox::getCursorPos(s32 x, s32 y)
|
||||||
|
|
||||||
if (x < CurrentTextRect.UpperLeftCorner.X)
|
if (x < CurrentTextRect.UpperLeftCorner.X)
|
||||||
x = CurrentTextRect.UpperLeftCorner.X;
|
x = CurrentTextRect.UpperLeftCorner.X;
|
||||||
|
else if (x > CurrentTextRect.LowerRightCorner.X)
|
||||||
|
x = CurrentTextRect.LowerRightCorner.X;
|
||||||
|
|
||||||
s32 idx = font->getCharacterFromPos(Text.c_str(), x - CurrentTextRect.UpperLeftCorner.X);
|
s32 idx = font->getCharacterFromPos(Text.c_str(), x - CurrentTextRect.UpperLeftCorner.X);
|
||||||
|
|
||||||
|
@ -1127,7 +1129,7 @@ s32 intlGUIEditBox::getCursorPos(s32 x, s32 y)
|
||||||
if (idx != -1)
|
if (idx != -1)
|
||||||
return idx + startPos;
|
return idx + startPos;
|
||||||
|
|
||||||
// click was off the right edge of the line, go to end.
|
// click was off the right edge of the last line, go to end.
|
||||||
return txtLine->size() + startPos;
|
return txtLine->size() + startPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue