From 9be68e49b26036972860dc10df2363e6e8f0d586 Mon Sep 17 00:00:00 2001 From: Olivier Perret Date: Sun, 6 Jan 2019 15:01:43 +0100 Subject: lua: execute idle handlers after timers have been processed Idle handlers used to not be executed when timers were active Now they are executed: * After all expired timers have been executed * After all events have been processed (same as when there are no timers) --- player/lua/defaults.lua | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/player/lua/defaults.lua b/player/lua/defaults.lua index d5bb194c50..8f91899bc2 100644 --- a/player/lua/defaults.lua +++ b/player/lua/defaults.lua @@ -476,12 +476,9 @@ function mp.dispatch_events(allow_wait) while mp.keep_running do local wait = 0 if not more_events then - wait = process_timers() - if wait == nil then - for _, handler in ipairs(idle_handlers) do - handler() - end - wait = 1e20 -- infinity for all practical purposes + wait = process_timers() or 1e20 -- infinity for all practical purposes + for _, handler in ipairs(idle_handlers) do + handler() end -- Resume playloop - important especially if an error happened while -- suspended, and the error was handled, but no resume was done. -- cgit v1.2.3