From 8fa737f01cf54111002eab773e849d28a4aab4ef Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 31 Jan 2021 15:14:43 +0530 Subject: [PATCH] Rescan for animated images on various events --- kitty/glfw.c | 6 ++++-- kitty/state.c | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) 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; }