summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Perret <Olivier.Perret@mailbox.org>2019-01-06 15:01:43 +0100
committersfan5 <sfan5@live.de>2019-01-16 16:58:46 +0100
commit9be68e49b26036972860dc10df2363e6e8f0d586 (patch)
treee524168b4545114d783cc8f8cf89fe0041fe14fb
parentc681fc133c6b9ae3d8a5f462927950516624c11d (diff)
downloadmpv-9be68e49b26036972860dc10df2363e6e8f0d586.tar.bz2
mpv-9be68e49b26036972860dc10df2363e6e8f0d586.tar.xz
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)
-rw-r--r--player/lua/defaults.lua9
1 files 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.