From 48c05aa77a6a06329f4764ab511e39611262c23f Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sat, 18 Nov 2023 14:13:13 -0800 Subject: [PATCH] late-bind my App.* handlers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- app.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app.lua b/app.lua index cff3483..35350d4 100644 --- a/app.lua +++ b/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