From 82e33dd2dec61f5390b6c716d684b92754f78ed6 Mon Sep 17 00:00:00 2001 From: rxi Date: Sun, 24 May 2020 13:31:49 +0100 Subject: [PATCH] Moved event-waiting when not focused to after run_threads() --- data/core/init.lua | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/data/core/init.lua b/data/core/init.lua index 3fd1acd..cafd2e7 100644 --- a/data/core/init.lua +++ b/data/core/init.lua @@ -365,10 +365,7 @@ function core.step() -- update core.root_view.size.x, core.root_view.size.y = width, height core.root_view:update() - if not core.redraw then - if not system.window_has_focus() then system.wait_event(0.5) end - return - end + if not core.redraw then return false end core.redraw = false -- close unreferenced docs @@ -394,6 +391,7 @@ function core.step() renderer.set_clip_rect(table.unpack(core.clip_rect_stack[1])) core.root_view:draw() renderer.end_frame() + return true end @@ -432,8 +430,11 @@ end) function core.run() while true do core.frame_start = system.get_time() - core.step() + local did_redraw = core.step() run_threads() + if not did_redraw and not system.window_has_focus() then + system.wait_event(0.25) + end local elapsed = system.get_time() - core.frame_start system.sleep(math.max(0, 1 / config.fps - elapsed)) end