From b5b252af2580c8dad8097037481963f93babfba7 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 6 Jun 2018 13:26:55 +0200 Subject: [PATCH] core: Hide close dialog before destroying The MetaCloseDialog implementation object may stay artifically alive for a longer period. This was usually fine till gnome-shell commit b03bcc85aad, as the check_alive() timeout will keep running even though the window went unmanaged/destroyed, leading to crashes. In order to fix this, forcibly hide the dialog if it is visible and the window is being unmanaged, so the timeout is stopped in time. --- src/core/delete.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/core/delete.c b/src/core/delete.c index af7cffed9..fd94dc6ca 100644 --- a/src/core/delete.c +++ b/src/core/delete.c @@ -115,5 +115,8 @@ meta_window_kill (MetaWindow *window) void meta_window_free_delete_dialog (MetaWindow *window) { + if (window->close_dialog && + meta_close_dialog_is_visible (window->close_dialog)) + meta_close_dialog_hide (window->close_dialog); g_clear_object (&window->close_dialog); } -- 2.25.1