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:
parent
007b965b11
commit
48c05aa77a
3
app.lua
3
app.lua
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue