From 240a4acdcc3f2d61537e9961fe815ce5330178b8 Mon Sep 17 00:00:00 2001 From: NiLuJe Date: Fri, 18 Jun 2021 19:23:03 +0200 Subject: [PATCH] TouchMenu: Abort early if tap/hold handlers are called on an unpainted widget May happen if we have blocking stuff on startup (e.g., Wi-Fi), and you spam tap the screen during the white screen. --- frontend/ui/widget/touchmenu.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/frontend/ui/widget/touchmenu.lua b/frontend/ui/widget/touchmenu.lua index 0592fffd3..6eb211076 100644 --- a/frontend/ui/widget/touchmenu.lua +++ b/frontend/ui/widget/touchmenu.lua @@ -157,6 +157,9 @@ function TouchMenuItem:onTapSelect(arg, ges) end if enabled == false then return end + -- If the menu hasn't actually been drawn yet, don't do anything (as it's confusing, and the coordinates may be wrong). + if not self.item_frame.dimen then return end + if G_reader_settings:isFalse("flash_ui") then self.menu:onMenuSelect(self.item) else @@ -200,6 +203,8 @@ function TouchMenuItem:onHoldSelect(arg, ges) end if enabled == false then return end + if not self.item_frame.dimen then return end + if G_reader_settings:isFalse("flash_ui") then self.menu:onMenuHold(self.item, self.text_truncated) else