diff --git a/src/ui/core.c b/src/ui/core.c index f755cfa9..4ddfe4bb 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -54,6 +54,7 @@ static int inp_size; static gboolean perform_resize = FALSE; +static gboolean ui_suspended = FALSE; static GTimer* ui_idle_time; static WINDOW* main_scr; @@ -120,8 +121,8 @@ ui_sigwinch_handler(int sig) void ui_update(void) { - // UI is suspended - if (isendwin()) { + // UI is suspended (editor active) or the screen is closed + if (ui_suspended || isendwin()) { return; } @@ -179,6 +180,7 @@ ui_reset_idle_time(void) void ui_suspend(void) { + ui_suspended = TRUE; inp_suspend(); endwin(); } @@ -186,6 +188,7 @@ ui_suspend(void) void ui_resume(void) { + ui_suspended = FALSE; refresh(); inp_resume(); } @@ -193,8 +196,8 @@ ui_resume(void) void ui_resize(void) { - // UI is suspended - if (isendwin()) { + // UI is suspended (editor active) or the screen is closed + if (ui_suspended || isendwin()) { return; } @@ -216,8 +219,8 @@ ui_resize(void) void ui_redraw(void) { - // UI is suspended - if (isendwin()) { + // UI is suspended (editor active) or the screen is closed + if (ui_suspended || isendwin()) { return; }