From 502da973eb0ef67a6f279c5c0c87a12fcda169f5 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 29 Apr 2019 13:46:37 -0400 Subject: [PATCH] window: free close dialog before unmanaging window from compositor When an application stops responding, the shell darkens its windows. If a window from a not-responding application gets unmanaged then the shell will currently throw an exception trying to retrieve the now-dissociated window actor. That leads to a "stuck window" ghost on screen and a traceback in the log. This commit addresses the problem by making sure the effect is cleaned up before the actor is disocciated from its window. https://gitlab.gnome.org/GNOME/mutter/issues/575 --- src/core/window.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/window.c b/src/core/window.c index d2c24506b..5f76787f3 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -1427,6 +1427,8 @@ meta_window_unmanage (MetaWindow *window, if (window->unmanage_idle_id) g_source_remove (window->unmanage_idle_id); + meta_window_free_delete_dialog (window); + #ifdef HAVE_WAYLAND /* This needs to happen for both Wayland and XWayland clients, * so it can't be in MetaWindowWayland. */ @@ -1549,7 +1551,6 @@ meta_window_unmanage (MetaWindow *window, meta_window_unqueue (window, META_QUEUE_CALC_SHOWING | META_QUEUE_MOVE_RESIZE | META_QUEUE_UPDATE_ICON); - meta_window_free_delete_dialog (window); set_workspace_state (window, FALSE, NULL);