From a4a377ecad6f1732cc54e7ac329fdef9949f9bf7 Mon Sep 17 00:00:00 2001 From: you Date: Fri, 19 May 2017 07:57:21 +0200 Subject: [PATCH] Fix textarea bug: clicking right of the end of a line caused the cursor to be in one of the next lines (#3474) --- src/intlGUIEditBox.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/intlGUIEditBox.cpp b/src/intlGUIEditBox.cpp index 29f828076..4cc2d746f 100644 --- a/src/intlGUIEditBox.cpp +++ b/src/intlGUIEditBox.cpp @@ -1120,6 +1120,8 @@ s32 intlGUIEditBox::getCursorPos(s32 x, s32 y) if (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); @@ -1127,7 +1129,7 @@ s32 intlGUIEditBox::getCursorPos(s32 x, s32 y) if (idx != -1) 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; }