From 91204ca30b83d67b7fcc9fede19aa6325e654ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ritzl?= Date: Thu, 10 Aug 2023 00:08:10 +0200 Subject: [PATCH] Wait for both in and out transitions (#97) --- monarch/monarch.lua | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/monarch/monarch.lua b/monarch/monarch.lua index 5bfaaf4..2b1ff08 100644 --- a/monarch/monarch.lua +++ b/monarch/monarch.lua @@ -863,13 +863,10 @@ function M.show(id, options, data, cb) show_in(screen, top, options and options.reload, add_to_stack, WAIT_FOR_TRANSITION, callbacks.track()) else -- show screen - local cb = callbacks.track() - show_in(screen, top, options and options.reload, add_to_stack, DO_NOT_WAIT_FOR_TRANSITION, function() - if add_to_stack and top and not top.popup then - show_out(top, screen, WAIT_FOR_TRANSITION, callbacks.track()) - end - cb() - end) + show_in(screen, top, options and options.reload, add_to_stack, WAIT_FOR_TRANSITION, callbacks.track()) + if add_to_stack and top and not top.popup then + show_out(top, screen, WAIT_FOR_TRANSITION, callbacks.track()) + end end callbacks.when_done(function() @@ -1014,16 +1011,16 @@ function M.back(options, data, cb) -- we do this to ensure that we do not reset the times step of the screen -- we go back to until it is no longer obscured by the popup if screen.popup and not top.popup then + local back_cb = callbacks.track() back_out(screen, top, WAIT_FOR_TRANSITION, function() back_in(top, screen, WAIT_FOR_TRANSITION, back_cb) end) else - back_in(top, screen, DO_NOT_WAIT_FOR_TRANSITION, function() - back_out(screen, top, WAIT_FOR_TRANSITION, back_cb) - end) + back_in(top, screen, WAIT_FOR_TRANSITION, callbacks.track()) + back_out(screen, top, WAIT_FOR_TRANSITION, callbacks.track()) end else - back_out(screen, top, WAIT_FOR_TRANSITION, back_cb) + back_out(screen, top, WAIT_FOR_TRANSITION, callbacks.track()) end end end