From 376225cea044d050f8fc2923e7149d320150bab7 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 cc0813ac4..aa85806f1 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -1388,6 +1388,8 @@ meta_window_unmanage (MetaWindow *window, meta_verbose ("Unmanaging %s\n", window->desc); window->unmanaging = TRUE; + 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. */ @@ -1510,7 +1512,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); -- 2.23.0