From 17d5934712d71502c778ed6b3904397d34458e69 Mon Sep 17 00:00:00 2001 From: NiLuJe Date: Sun, 21 May 2023 01:23:41 +0200 Subject: [PATCH] Notification: NOP conflicting event handlers from our base class (#10471) Notification is a toast, so it doesn't stop event popagation. If we don't disable thoses handlers inside Notification, we get spurious duplicate handlers being fired ;). Fix #10461 --- frontend/ui/widget/container/inputcontainer.lua | 4 ++-- frontend/ui/widget/notification.lua | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/frontend/ui/widget/container/inputcontainer.lua b/frontend/ui/widget/container/inputcontainer.lua index fd40d3e9c..734eabf4f 100644 --- a/frontend/ui/widget/container/inputcontainer.lua +++ b/frontend/ui/widget/container/inputcontainer.lua @@ -323,9 +323,9 @@ function InputContainer:onIgnoreTouchInput(toggle) else -- Toggle the current state if InputContainer._onGesture then - self:onIgnoreTouchInput(false) + return self:onIgnoreTouchInput(false) else - self:onIgnoreTouchInput(true) + return self:onIgnoreTouchInput(true) end end diff --git a/frontend/ui/widget/notification.lua b/frontend/ui/widget/notification.lua index 375ee23b4..0ada71b9a 100644 --- a/frontend/ui/widget/notification.lua +++ b/frontend/ui/widget/notification.lua @@ -251,4 +251,13 @@ function Notification:onGesture(ev) return InputContainer.onGesture(self, ev) end +-- Since toasts do *not* prevent event propagation, if we let this go through to InputContainer, shit happens... +function Notification:onIgnoreTouchInput(toggle) + return true +end +-- Do the same for other Events caught by our base class +Notification.onResume = Notification.onIgnoreTouchInput +Notification.onPhysicalKeyboardDisconnected = Notification.onIgnoreTouchInput +Notification.onInput = Notification.onIgnoreTouchInput + return Notification