[metacity] compositor: don't remove window on UnmapNotify event
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [metacity] compositor: don't remove window on UnmapNotify event
- Date: Mon, 26 Sep 2016 08:22:40 +0000 (UTC)
commit a7953a0d9e83dae0c62f75af8b7c809641f4aa90
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Mon Sep 26 11:19:13 2016 +0300
compositor: don't remove window on UnmapNotify event
Compositor still needs to know about unmapped windows to properly
handle window stacking order.
https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/1614050
src/compositor/compositor-xrender.c | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
---
diff --git a/src/compositor/compositor-xrender.c b/src/compositor/compositor-xrender.c
index 963aa1f..11b4106 100644
--- a/src/compositor/compositor-xrender.c
+++ b/src/compositor/compositor-xrender.c
@@ -3279,6 +3279,7 @@ xrender_free_window (MetaCompositor *compositor,
MetaCompositorXRender *xrc;
MetaFrame *frame;
Window xwindow;
+ MetaCompWindow *cw;
xrc = (MetaCompositorXRender *) compositor;
frame = meta_window_get_frame (window);
@@ -3288,7 +3289,21 @@ xrender_free_window (MetaCompositor *compositor,
else
xwindow = meta_window_get_xwindow (window);
- destroy_win (xrc->display, xwindow, FALSE);
+ cw = find_window_in_display (xrc->display, xwindow);
+ if (cw == NULL)
+ return;
+
+ cw->attrs.map_state = IsUnmapped;
+ cw->damaged = FALSE;
+
+ if (cw->extents != None)
+ {
+ dump_xserver_region ("destroy_win", xrc->display, cw->extents);
+ add_damage (cw->screen, cw->extents);
+ cw->extents = None;
+ }
+
+ free_win (cw, FALSE);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]