summaryrefslogtreecommitdiffstats
path: root/compton.c
diff options
context:
space:
mode:
authorRichard Grenville <[email protected]>2013-05-01 22:08:43 +0800
committerRichard Grenville <[email protected]>2013-05-01 22:08:43 +0800
commitc742c97a8c68dc168cca8b135609eb1501ac3225 (patch)
tree312c46bd16fc302c3962bcc34463bd5b5a3c3f48 /compton.c
parente94746bbbb104fd11dec9c0a218b0d8f9f5c9252 (diff)
downloadtdebase-c742c97a8c68dc168cca8b135609eb1501ac3225.tar.gz
tdebase-c742c97a8c68dc168cca8b135609eb1501ac3225.zip
Misc: Validate wallpaper pixmap & Documentation update
- Split Pixmap validation out to validate_pixmap(). Validate wallpaper Pixmap as well. - Update README.md and man page.
Diffstat (limited to 'compton.c')
-rw-r--r--compton.c28
1 files changed, 4 insertions, 24 deletions
diff --git a/compton.c b/compton.c
index 82ee6c714..1111c190b 100644
--- a/compton.c
+++ b/compton.c
@@ -670,30 +670,6 @@ win_rounded_corners(session_t *ps, win *w) {
}
/**
- * Validate pixmap of a window, and destroy pixmap and picture if invalid.
- */
-static void
-win_validate_pixmap(session_t *ps, win *w) {
- if (!w->paint.pixmap)
- return;
-
- // Detect whether the pixmap is valid with XGetGeometry. Well, maybe there
- // are better ways.
- bool invalid = false;
- {
- Window rroot = None;
- int rx = 0, ry = 0;
- unsigned rwid = 0, rhei = 0, rborder = 0, rdepth = 0;
- invalid = (!XGetGeometry(ps->dpy, w->paint.pixmap, &rroot, &rx, &ry,
- &rwid, &rhei, &rborder, &rdepth) || !rwid || !rhei);
- }
-
- // Destroy pixmap and picture, if invalid
- if (invalid)
- free_paint(ps, &w->paint);
-}
-
-/**
* Add a pattern to a condition linked list.
*/
static bool
@@ -840,6 +816,10 @@ get_root_tile(session_t *ps) {
free_winprop(&prop);
}
+ // Make sure the pixmap we got is valid
+ if (pixmap && !validate_pixmap(ps, pixmap))
+ pixmap = None;
+
// Create a pixmap if there isn't any
if (!pixmap) {
pixmap = XCreatePixmap(ps->dpy, ps->root, 1, 1, ps->depth);