From e70bc60f0fe07ce41f0e0225e030ef32eb82079c Mon Sep 17 00:00:00 2001 From: hius07 <62179190+hius07@users.noreply.github.com> Date: Wed, 19 May 2021 20:09:22 +0300 Subject: [PATCH] Inputtext: don't allow the cursor to move within a hint (#7687) Same as 17e6049e but for "hold". --- frontend/ui/widget/inputtext.lua | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/frontend/ui/widget/inputtext.lua b/frontend/ui/widget/inputtext.lua index 444e9168d..297ded7f4 100644 --- a/frontend/ui/widget/inputtext.lua +++ b/frontend/ui/widget/inputtext.lua @@ -120,12 +120,13 @@ if Device:isTouchDevice() or Device:hasDPad() then if self.parent.onSwitchFocus then self.parent:onSwitchFocus(self) end - if #self.charlist == 0 then return end -- Avoid cursor moving within a hint. - local textwidget_offset = self.margin + self.bordersize + self.padding - local x = ges.pos.x - self._frame_textwidget.dimen.x - textwidget_offset - local y = ges.pos.y - self._frame_textwidget.dimen.y - textwidget_offset - self.text_widget:moveCursorToXY(x, y, true) -- restrict_to_view=true - self.charpos, self.top_line_num = self.text_widget:getCharPos() + if #self.charlist > 0 then -- Avoid cursor moving within a hint. + local textwidget_offset = self.margin + self.bordersize + self.padding + local x = ges.pos.x - self._frame_textwidget.dimen.x - textwidget_offset + local y = ges.pos.y - self._frame_textwidget.dimen.y - textwidget_offset + self.text_widget:moveCursorToXY(x, y, true) -- restrict_to_view=true + self.charpos, self.top_line_num = self.text_widget:getCharPos() + end return true end @@ -133,11 +134,13 @@ if Device:isTouchDevice() or Device:hasDPad() then if self.parent.onSwitchFocus then self.parent:onSwitchFocus(self) end - local textwidget_offset = self.margin + self.bordersize + self.padding - local x = ges.pos.x - self._frame_textwidget.dimen.x - textwidget_offset - local y = ges.pos.y - self._frame_textwidget.dimen.y - textwidget_offset - self.text_widget:moveCursorToXY(x, y, true) -- restrict_to_view=true - self.charpos, self.top_line_num = self.text_widget:getCharPos() + if #self.charlist > 0 then -- Avoid cursor moving within a hint. + local textwidget_offset = self.margin + self.bordersize + self.padding + local x = ges.pos.x - self._frame_textwidget.dimen.x - textwidget_offset + local y = ges.pos.y - self._frame_textwidget.dimen.y - textwidget_offset + self.text_widget:moveCursorToXY(x, y, true) -- restrict_to_view=true + self.charpos, self.top_line_num = self.text_widget:getCharPos() + end if Device:hasClipboard() and Device.input.hasClipboardText() then self:addChars(Device.input.getClipboardText()) end