diff options
author | Jan Burgmeier <[email protected]> | 2017-11-08 16:14:11 +0100 |
---|---|---|
committer | raveit65 <[email protected]> | 2017-11-10 20:13:10 +0100 |
commit | 6cf1369769b94165c3360945deb47621e957c603 (patch) | |
tree | 2ede3208735d627052a4e6a8deac5e02559247f5 | |
parent | 99e0041e07bb3efe3f4253d995a58e7f214df35f (diff) | |
download | marco-6cf1369769b94165c3360945deb47621e957c603.tar.bz2 marco-6cf1369769b94165c3360945deb47621e957c603.tar.xz |
XFIXES regions are leaked during paint_windows if more than one
META_COMP_WINDOW_DESKTOP is available (#329)
-rw-r--r-- | src/compositor/compositor-xrender.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/compositor/compositor-xrender.c b/src/compositor/compositor-xrender.c index 75171cbc..8b0c43e5 100644 --- a/src/compositor/compositor-xrender.c +++ b/src/compositor/compositor-xrender.c @@ -1321,8 +1321,15 @@ paint_windows (MetaScreen *screen, if (cw->type == META_COMP_WINDOW_DESKTOP) { - desktop_region = XFixesCreateRegion (xdisplay, 0, 0); - XFixesCopyRegion (xdisplay, desktop_region, paint_region); + if(desktop_region) + { + XFixesUnionRegion (xdisplay, desktop_region, desktop_region, paint_region); + } + else + { + desktop_region = XFixesCreateRegion (xdisplay, 0, 0); + XFixesCopyRegion (xdisplay, desktop_region, paint_region); + } } XFixesSubtractRegion (xdisplay, paint_region, |