summaryrefslogtreecommitdiffhomepage
path: root/drw.c
diff options
context:
space:
mode:
authorbakkeby <[email protected]>2022-03-06 11:38:22 +0100
committerbakkeby <[email protected]>2022-03-06 11:38:22 +0100
commitadc05c2332b6267c4af5bf506ff071629d16f281 (patch)
tree8ea1e605244b7cc46437117aaf8b85a12c956c20 /drw.c
parent5c321794f1ffb8f395de9b58e1c165e7137df711 (diff)
downloaddwm-flexipatch-adc05c2332b6267c4af5bf506ff071629d16f281.tar.gz
dwm-flexipatch-adc05c2332b6267c4af5bf506ff071629d16f281.zip
Upgrading winicon patch to v2.1 ref. #238
Diffstat (limited to 'drw.c')
-rw-r--r--drw.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/drw.c b/drw.c
index afb6477..1e53132 100644
--- a/drw.c
+++ b/drw.c
@@ -89,9 +89,15 @@ drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h
drw->depth = depth;
drw->cmap = cmap;
drw->drawable = XCreatePixmap(dpy, root, w, h, depth);
+ #if BAR_WINICON_PATCH
+ drw->picture = XRenderCreatePicture(dpy, drw->drawable, XRenderFindVisualFormat(dpy, visual), 0, NULL);
+ #endif // BAR_WINICON_PATCH
drw->gc = XCreateGC(dpy, drw->drawable, 0, NULL);
#else
drw->drawable = XCreatePixmap(dpy, root, w, h, DefaultDepth(dpy, screen));
+ #if BAR_WINICON_PATCH
+ drw->picture = XRenderCreatePicture(dpy, drw->drawable, XRenderFindVisualFormat(dpy, DefaultVisual(dpy, screen)), 0, NULL);
+ #endif // BAR_WINICON_PATCH
drw->gc = XCreateGC(dpy, root, 0, NULL);
#endif // BAR_ALPHA_PATCH
XSetLineAttributes(dpy, drw->gc, 1, LineSolid, CapButt, JoinMiter);
@@ -107,18 +113,31 @@ drw_resize(Drw *drw, unsigned int w, unsigned int h)
drw->w = w;
drw->h = h;
+ #if BAR_WINICON_PATCH
+ if (drw->picture)
+ XRenderFreePicture(drw->dpy, drw->picture);
+ #endif // BAR_WINICON_PATCH
if (drw->drawable)
XFreePixmap(drw->dpy, drw->drawable);
#if BAR_ALPHA_PATCH
drw->drawable = XCreatePixmap(drw->dpy, drw->root, w, h, drw->depth);
- #else
+ #if BAR_WINICON_PATCH
+ drw->picture = XRenderCreatePicture(drw->dpy, drw->drawable, XRenderFindVisualFormat(drw->dpy, drw->visual), 0, NULL);
+ #endif // BAR_WINICON_PATCH
+ #else // !BAR_ALPHA_PATCH
drw->drawable = XCreatePixmap(drw->dpy, drw->root, w, h, DefaultDepth(drw->dpy, drw->screen));
+ #if BAR_WINICON_PATCH
+ drw->picture = XRenderCreatePicture(drw->dpy, drw->drawable, XRenderFindVisualFormat(drw->dpy, DefaultVisual(drw->dpy, drw->screen)), 0, NULL);
+ #endif // BAR_WINICON_PATCH
#endif // BAR_ALPHA_PATCH
}
void
drw_free(Drw *drw)
{
+ #if BAR_WINICON_PATCH
+ XRenderFreePicture(drw->dpy, drw->picture);
+ #endif // BAR_WINICON_PATCH
XFreePixmap(drw->dpy, drw->drawable);
XFreeGC(drw->dpy, drw->gc);
drw_fontset_free(drw->fonts);