From 8232f116a5d7151ea6999cec66a188b72f8de753 Mon Sep 17 00:00:00 2001
From: Gabriel Tofvesson <gabriel@tofvesson.se>
Date: Tue, 8 Oct 2024 16:59:32 +0200
Subject: [PATCH] Simplify event handling

---
 gfx/event.lua   | 4 ++--
 gfx/list.lua    | 2 +-
 gfx/padding.lua | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/gfx/event.lua b/gfx/event.lua
index 9b01359..d179a6a 100644
--- a/gfx/event.lua
+++ b/gfx/event.lua
@@ -18,8 +18,8 @@ end
 
 function Event.containsClick(element, evt, dX, dY)
   local x, y = Event.getClickParams(evt)
-  x = x + dX
-  y = y + dY
+  x = x + (dX or 0)
+  y = y + (dY or 0)
   local eX, eY = element:getPos()
   return x >= eX and x < (eX + element:getWidth()) and y >= eY and y < (eY + element:getHeight())
 end
diff --git a/gfx/list.lua b/gfx/list.lua
index 7e22ff2..e42942d 100644
--- a/gfx/list.lua
+++ b/gfx/list.lua
@@ -133,7 +133,7 @@ function List:handleEvent(evt)
 
   if Event.isClickEvent(evt) then
     -- If click is not inside list bounds, we can safely ignore it
-    if not Event.containsClick(self, evt, 0, 0) then
+    if not Event.containsClick(self, evt) then
       return false
     end
 
diff --git a/gfx/padding.lua b/gfx/padding.lua
index e4a5b22..b907568 100644
--- a/gfx/padding.lua
+++ b/gfx/padding.lua
@@ -86,7 +86,7 @@ function Padding:handleEvent(evt)
   end
 
   if Event.isClickEvent(evt) then
-    return self.element:handleEvent({Event.repositionEvent(evt, -self:getPaddingLeft(), -self:getPaddingTop())})
+    return Event.containsClick(self, evt) and self.element:handleEvent({Event.repositionEvent(evt, -self:getPaddingLeft(), -self:getPaddingTop())})
   else
     return self.element:handleEvent(evt)
   end