InputDialog: Don't close the VirtualKeyboard when you tap inside a key's

*border*

That's going to be the sneaky bug to beat for 2024, lol ;).

Fix #11357
reviewable/pr11362/r2
NiLuJe 3 months ago
parent 5bd78ab3b4
commit 40d27ac3e5

@ -489,7 +489,15 @@ function InputDialog:onTap(arg, ges)
return
end
if self:isKeyboardVisible() then
self:onCloseKeyboard()
-- NOTE: If you're unlucky enough to tap inside of a border between keys,
-- this falls outside of the ges_events range of a VirtualKey, so it is *NOT* caught by VK.
-- Instead, since we're flagged is_always_active, it goes to us,
-- so we'll have to double check that it wasn't inside of the whole VK region,
-- otherwise tapping inside a border would close the VK ;p.
-- Poke at keyboard_frame directly, as the top-level dimen never gets updated coordinates...
if self._input_widget.keyboard and self._input_widget.keyboard.dimen and ges.pos:notIntersectWith(self._input_widget.keyboard[1][1].dimen) then
self:onCloseKeyboard()
end
else
if ges.pos:notIntersectWith(self.dialog_frame.dimen) then
self:onCloseDialog()

Loading…
Cancel
Save