late-bind my App.* handlers

This came up when trying to integrate my apps with the vudu debugger
(https://github.com/deltadaedalus/vudu). In general, it's a subtle part
of LÖVE's semantics that you can modify event handlers any time and your
modifications will get picked up. Now my Freewheeling Apps will follow
this norm as well.
This commit is contained in:
Kartik K. Agaram 2023-11-18 14:13:13 -08:00
parent 007b965b11
commit 48c05aa77a
1 changed files with 2 additions and 1 deletions

View File

@ -406,6 +406,7 @@ local Keys_down = {}
-- can't run any tests after this -- can't run any tests after this
function App.disable_tests() function App.disable_tests()
-- have LÖVE delegate all handlers to App if they exist -- have LÖVE delegate all handlers to App if they exist
-- make sure to late-bind handlers like LÖVE's defaults do
for name in pairs(love.handlers) do for name in pairs(love.handlers) do
if App[name] then if App[name] then
-- love.keyboard.isDown doesn't work on Android, so emulate it using -- love.keyboard.isDown doesn't work on Android, so emulate it using
@ -421,7 +422,7 @@ function App.disable_tests()
return App.keyreleased(key, scancode) return App.keyreleased(key, scancode)
end end
else else
love.handlers[name] = App[name] love.handlers[name] = function(...) App[name](...) end
end end
end end
end end