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
function App.disable_tests()
-- 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
if App[name] then
-- 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)
end
else
love.handlers[name] = App[name]
love.handlers[name] = function(...) App[name](...) end
end
end
end