summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen W. Taylor <otaylor@fishsoup.net>2014-09-16 13:40:30 -0400
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>2017-04-01 14:47:12 +0300
commit6985dc4e41601b435f4597b8d6423f2f41337ade (patch)
treeff7a47c1bd2485f742df4fd540722fd6f47c279e
parent9ccc51775fb07bb606b614507f545ae1bbd7ac76 (diff)
downloadmetacity-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.c4
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;