diff --git a/kitty/glfw.c b/kitty/glfw.c index fdef60a49..79e49ba92 100644 --- a/kitty/glfw.c +++ b/kitty/glfw.c @@ -160,15 +160,17 @@ window_close_callback(GLFWwindow* window) { } static void -window_occlusion_callback(GLFWwindow *window, bool occluded UNUSED) { +window_occlusion_callback(GLFWwindow *window, bool occluded) { if (!set_callback_window(window)) return; + if (!occluded) global_state.has_active_animated_images = true; request_tick_callback(); global_state.callback_os_window = NULL; } static void -window_iconify_callback(GLFWwindow *window, int iconified UNUSED) { +window_iconify_callback(GLFWwindow *window, int iconified) { if (!set_callback_window(window)) return; + if (!iconified) global_state.has_active_animated_images = true; request_tick_callback(); global_state.callback_os_window = NULL; } diff --git a/kitty/state.c b/kitty/state.c index 252c272b8..2b515eb80 100644 --- a/kitty/state.c +++ b/kitty/state.c @@ -953,7 +953,9 @@ PYWRAP1(update_window_visibility) { int visible; PA("KKKp", &os_window_id, &tab_id, &window_id, &visible); WITH_WINDOW(os_window_id, tab_id, window_id); + bool was_visible = window->visible & 1; window->visible = visible & 1; + if (!was_visible && window->visible) global_state.has_active_animated_images = true; END_WITH_WINDOW; Py_RETURN_NONE; }