diff options
author | Owen W. Taylor <otaylor@fishsoup.net> | 2014-09-16 13:40:30 -0400 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2017-04-01 14:47:12 +0300 |
commit | 6985dc4e41601b435f4597b8d6423f2f41337ade (patch) | |
tree | ff7a47c1bd2485f742df4fd540722fd6f47c279e | |
parent | 9ccc51775fb07bb606b614507f545ae1bbd7ac76 (diff) | |
download | metacity-6985dc4e41601b435f4597b8d6423f2f41337ade.tar.gz |
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.
-rw-r--r-- | 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 6315b313..dedfbfab 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; |