summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Fourdan <fourdan@xfce.org>2020-12-14 20:33:56 +0100
committerOlivier Fourdan <fourdan@xfce.org>2020-12-14 20:48:49 +0100
commit327b02dfac086568ca464f5ebf3c77df55971f3b (patch)
treec81cb23486ac07d1298163de7169d89d80e7f754
parent66b6615df60b82509f6e9f0bc73936a3a876b340 (diff)
downloadxfwm4-327b02dfac086568ca464f5ebf3c77df55971f3b.tar.gz
compositor: Release overlay window last
The root picture applies to the output window, which in turn is the overlay window (when supported), therefore the overlay window should be released last to avoid XErrors when disabling the compositor. Signed-off-by: Olivier Fourdan <fourdan@xfce.org> (cherry picked from commit 1412f1ea679f7744009a38fa6c8de0e69ce7308d)
-rw-r--r--src/compositor.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/compositor.c b/src/compositor.c
index 4ba9227a8..2d723d760 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -4647,17 +4647,6 @@ compositorUnmanageScreen (ScreenInfo *screen_info)
screen_info->cwindows = NULL;
TRACE ("compositor: removed %i window(s) remaining", i);
-#if HAVE_OVERLAYS
- if (display_info->have_overlays)
- {
- XDestroyWindow (display_info->dpy, screen_info->root_overlay);
- screen_info->root_overlay = None;
-
- XCompositeReleaseOverlayWindow (display_info->dpy, screen_info->overlay);
- screen_info->overlay = None;
- }
-#endif /* HAVE_OVERLAYS */
-
#ifdef HAVE_EPOXY
if (screen_info->use_glx)
{
@@ -4736,6 +4725,17 @@ compositorUnmanageScreen (ScreenInfo *screen_info)
screen_info->gaussianMap = NULL;
}
+#if HAVE_OVERLAYS
+ if (display_info->have_overlays)
+ {
+ XDestroyWindow (display_info->dpy, screen_info->root_overlay);
+ screen_info->root_overlay = None;
+
+ XCompositeReleaseOverlayWindow (display_info->dpy, screen_info->overlay);
+ screen_info->overlay = None;
+ }
+#endif /* HAVE_OVERLAYS */
+
screen_info->gaussianSize = -1;
screen_info->wins_unredirected = 0;