[metacity] don't restack windows while we are unmanaging them



commit 6985dc4e41601b435f4597b8d6423f2f41337ade
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Tue Sep 16 13:40:30 2014 -0400

    don't restack windows while we are unmanaging them
    
    Restacking the frame for a window while unmanaging the window is
    harmless, but for undecorated (in particular, client-side-decorated)
    windows, this causes problems because the window is typically
    destroyed by the client immediately after withredrawing the window.
    
    Skip windows flagged as being unmanaged when assembling the new
    stack and when comparing the old order to the new stack.

 src/core/stack-tracker.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/src/core/stack-tracker.c b/src/core/stack-tracker.c
index 6315b31..dedfbfa 100644
--- a/src/core/stack-tracker.c
+++ b/src/core/stack-tracker.c
@@ -921,7 +921,7 @@ meta_stack_tracker_restack_managed (MetaStackTracker *tracker,
 
       old_window = meta_display_lookup_x_window (display, windows[old_pos]);
 
-      if (old_window && !old_window->override_redirect)
+      if (old_window && !old_window->override_redirect && !old_window->unmanaging)
         break;
     }
 
@@ -955,7 +955,7 @@ meta_stack_tracker_restack_managed (MetaStackTracker *tracker,
         }
 
       old_window = meta_display_lookup_x_window (display, windows[old_pos]);
-      if (!old_window || old_window->override_redirect)
+      if (!old_window || old_window->override_redirect || old_window->unmanaging)
         {
           old_pos--;
           continue;


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