Fix offset calculations

This commit is contained in:
Gabriel Tofvesson 2024-10-08 17:27:08 +02:00
parent 8232f116a5
commit cb037bf811
3 changed files with 9 additions and 9 deletions

View File

@ -186,13 +186,10 @@ function Element:redraw()
end end
function Element:handleEvent(evt) function Element:handleEvent(evt)
if Event.isClickEvent(evt) and Event.containsClick(self, evt) then evt = Event.repositionEvent(evt, 1 - self:getX(), 1 - self:getY())
if self.onClick ~= nil then if Event.isClickEvent(evt) and Event.containsClick(self, evt) and self.onClick ~= nil then
local x, y, source = Event.getClickParams(evt) local x, y, source = Event.getClickParams(evt)
return not not self.onClick(self, x, y, source) return not not self.onClick(self, x, y, source)
else
return false
end
end end
return false return false
end end

View File

@ -127,6 +127,7 @@ function List:findById(id)
end end
function List:handleEvent(evt) function List:handleEvent(evt)
evt = Event.repositionEvent(evt, 1 - self:getX(), 1 - self:getY())
if Element.handleEvent(self, evt) then if Element.handleEvent(self, evt) then
return true return true
end end
@ -140,7 +141,7 @@ function List:handleEvent(evt)
local wOffset = 0 local wOffset = 0
local hOffset = 0 local hOffset = 0
for _,child in ipairs(self.children) do for _,child in ipairs(self.children) do
if child:handleEvent({Event.repositionEvent(evt, -wOffset, -hOffset)}) then if child:handleEvent(evt) then
return true return true
end end

View File

@ -81,12 +81,14 @@ function Padding:findById(id)
end end
function Padding:handleEvent(evt) function Padding:handleEvent(evt)
evt = Event.repositionEvent(evt, 1 - self:getX(), 1 - self:getY())
if Element.handleEvent(self, evt) then if Element.handleEvent(self, evt) then
return true return true
end end
if Event.isClickEvent(evt) then if Event.isClickEvent(evt) then
return Event.containsClick(self, evt) and self.element:handleEvent({Event.repositionEvent(evt, -self:getPaddingLeft(), -self:getPaddingTop())}) return Event.containsClick(self, evt) and self.element:handleEvent(evt)
else else
return self.element:handleEvent(evt) return self.element:handleEvent(evt)
end end