summaryrefslogtreecommitdiffstats
path: root/player/lua/defaults.lua
diff options
context:
space:
mode:
Diffstat (limited to 'player/lua/defaults.lua')
-rw-r--r--player/lua/defaults.lua15
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