[mutter/wip/the-undead-dont-always-reply] window: free close dialog before unmanaging window from compositor



commit 502da973eb0ef67a6f279c5c0c87a12fcda169f5
Author: Ray Strode <rstrode redhat com>
Date:   Mon Apr 29 13:46:37 2019 -0400

    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);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]