diff options
Diffstat (limited to 'player/lua/defaults.lua')
-rw-r--r-- | player/lua/defaults.lua | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/player/lua/defaults.lua b/player/lua/defaults.lua index 1ab1c4264a..8efa8d6315 100644 --- a/player/lua/defaults.lua +++ b/player/lua/defaults.lua @@ -135,7 +135,12 @@ mp.keep_running = true local event_handlers = {} function mp.register_event(name, cb) - event_handlers[name] = cb + local list = event_handlers[name] + if not list then + list = {} + event_handlers[name] = list + end + list[#list + 1] = cb return mp.request_event(name, true) end @@ -180,9 +185,11 @@ _G.mp_event_loop = function() mp.suspend() more_events = (e.event ~= "none") if more_events then - local handler = event_handlers[e.event] - if handler then - handler(e) + local handlers = event_handlers[e.event] + if handlers then + for _, handler in ipairs(handlers) do + handler(e) + end end end end |