diff options
author | Jan Burgmeier <[email protected]> | 2017-11-08 16:14:11 +0100 |
---|---|---|
committer | monsta <[email protected]> | 2018-03-02 15:05:32 +0300 |
commit | 36f7928088b7919b8e241c163ed8f701c5342b85 (patch) | |
tree | 3a831d606767bb6967364426520542aa81b9d884 | |
parent | a17f588b7ff2a97c94d42650fff52b9dc0091f8e (diff) | |
download | marco-36f7928088b7919b8e241c163ed8f701c5342b85.tar.bz2 marco-36f7928088b7919b8e241c163ed8f701c5342b85.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 04e89f66..1679f06e 100644 --- a/src/compositor/compositor-xrender.c +++ b/src/compositor/compositor-xrender.c @@ -1216,8 +1216,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, |