From: you Date: Fri, 19 May 2017 05:57:21 +0000 (+0200) Subject: Fix textarea bug: clicking right of the end of a line caused the cursor to be in... X-Git-Tag: 0.4.16~104 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a4a377ecad6f1732cc54e7ac329fdef9949f9bf7;p=oweals%2Fminetest.git Fix textarea bug: clicking right of the end of a line caused the cursor to be in one of the next lines (#3474) --- 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; }