From 36f7928088b7919b8e241c163ed8f701c5342b85 Mon Sep 17 00:00:00 2001 From: Jan Burgmeier Date: Wed, 8 Nov 2017 16:14:11 +0100 Subject: XFIXES regions are leaked during paint_windows if more than one META_COMP_WINDOW_DESKTOP is available (#329) --- src/compositor/compositor-xrender.c | 11 +++++++++-- 1 file 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, -- cgit v1.2.1