JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
fix unfocused transparency
authorJason Woofenden <jason@jasonwoof.com>
Mon, 17 Nov 2014 03:56:27 +0000 (22:56 -0500)
committerJason Woofenden <jason@jasonwoof.com>
Mon, 17 Nov 2014 03:56:27 +0000 (22:56 -0500)
dwm.c

diff --git a/dwm.c b/dwm.c
index 74a28a3..5c25c24 100644 (file)
--- a/dwm.c
+++ b/dwm.c
@@ -273,11 +273,11 @@ static void window_set_opaque(Client *c);
 static void window_set_translucent(Client *c);
 void
 window_set_opaque(Client *c) {
-       XChangeProperty(dpy, c->win, netatom[NetWMWindowOpacity], XA_CARDINAL, 32, PropModeReplace, (unsigned char *)unfocused_opacity, 1);
+       XDeleteProperty(dpy, c->win, netatom[NetWMWindowOpacity]);
 }
 void
 window_set_translucent(Client *c) {
-       XDeleteProperty(dpy, c->win, netatom[NetWMWindowOpacity]);
+       XChangeProperty(dpy, c->win, netatom[NetWMWindowOpacity], XA_CARDINAL, 32, PropModeReplace, (unsigned char *)unfocused_opacity, 1);
 }
 
 
@@ -798,10 +798,6 @@ focus(Client *c) {
        /* was if(selmon->sel) */
        if(selmon->sel && selmon->sel != c)
                unfocus(selmon->sel, False);
-       if(selmon->sel && c!=selmon->sel && c && (!root || (selmon->sel->win!=root && c->win!=root)) )
-               window_set_opaque(selmon->sel);
-       if(c && c!=selmon->sel && (!root || (c->win!=root)) )
-               window_set_translucent(c);
        if(c) {
                if(c->mon != selmon)
                        selmon = c->mon;
@@ -819,8 +815,8 @@ focus(Client *c) {
        }
        selmon->sel = c;
        drawbars();
-       if(c)
-               window_set_translucent(c);
+       if(c && (!root || (c->win!=root)) )
+               window_set_opaque(c);
 }
 
 void
@@ -1712,6 +1708,8 @@ void
 unfocus(Client *c, Bool setfocus) {
        if(!c)
                return;
+       if(!root || c->win!=root)
+               window_set_translucent(c);
        grabbuttons(c, False);
        XSetWindowBorder(dpy, c->win, scheme[SchemeNorm].border->rgb);
        if(setfocus) {