Compare commits

...

2 Commits

Author SHA1 Message Date
Gabriel Tofvesson
8232f116a5 Simplify event handling 2024-10-08 16:59:32 +02:00
Gabriel Tofvesson
df8f9d4018 Don't shadow global 2024-10-08 16:54:36 +02:00
4 changed files with 9 additions and 9 deletions

View File

@ -186,7 +186,7 @@ function Element:redraw()
end
function Element:handleEvent(evt)
if Event.isClickEvent(evt) and Event.containsClick(self, evt, 0, 0) then
if Event.isClickEvent(evt) and Event.containsClick(self, evt) then
if self.onClick ~= nil then
local x, y, source = Event.getClickParams(evt)
return not not self.onClick(self, x, y, source)
@ -203,10 +203,10 @@ end
function Element:_reload()
if self.parent ~= nil then
local window = window.create(self.parent, self:getX(), self:getY(), self:getWidth(), self:getHeight(), self:isVisible())
window.setBackgroundColor(self:getBgColor())
window.setTextColor(self:getFgColor())
self:_setWindow(window)
local win = window.create(self.parent, self:getX(), self:getY(), self:getWidth(), self:getHeight(), self:isVisible())
win.setBackgroundColor(self:getBgColor())
win.setTextColor(self:getFgColor())
self:_setWindow(win)
end
end

View File

@ -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

View File

@ -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

View File

@ -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