From 55626530f4a523cccd1d24c8819f7e80543e0276 Mon Sep 17 00:00:00 2001 From: Chris Feng Date: Sun, 19 Nov 2017 14:46:35 +0800 Subject: [PATCH] Free unused X resources * exwm-cm.el (exwm-cm--paint-tree): Make sure the clip can be destroyed even the X window is in full screen mode. (exwm-cm--paint-transparent, exwm-cm--paint-background): Free pixmaps after creating pictures. --- exwm-cm.el | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/exwm-cm.el b/exwm-cm.el index 233d5e0..095b59f 100644 --- a/exwm-cm.el +++ b/exwm-cm.el @@ -661,14 +661,14 @@ painting a frame." (setq queue (nconc (exwm-cm--paint-tree subtree region fullscreen clip) queue)) - (when fullscreen - ;; Fullscreen X windows are always opaque thus occludes - ;; anything in this workspace. - (throw 'break 'fullscreen)) (when clip (xcb:+request exwm-cm--conn (make-instance 'xcb:xfixes:DestroyRegion - :region clip)))) + :region clip))) + (when fullscreen + ;; Fullscreen X windows are always opaque thus occludes + ;; anything in this workspace. + (throw 'break 'fullscreen))) (if (not (eq root exwm--root)) ;; Avoid painting any siblings below the workspace frame ;; container. @@ -862,6 +862,9 @@ Also update the attributes of XWIN and clip the region." xcb:renderutil:PICT_STANDARD:A_8) :value-mask xcb:render:CP:Repeat :repeat 1)) + (xcb:+request exwm-cm--conn + (make-instance 'xcb:FreePixmap + :pixmap pixmap)) (xcb:+request exwm-cm--conn (make-instance 'xcb:render:FillRectangles :op xcb:render:PictOp:Src @@ -1033,6 +1036,9 @@ the whole screen." :value-mask xcb:render:CP:Repeat :repeat 1)) (unless exist + (xcb:+request exwm-cm--conn + (make-instance 'xcb:FreePixmap + :pixmap pixmap)) (xcb:+request exwm-cm--conn (make-instance 'xcb:render:FillRectangles :op xcb:render:PictOp:Src