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