JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
implemented NET_ACTIVE_WINDOW support
[dwm.git] / client.c
index 7c3b28b..9b91ab6 100644 (file)
--- a/client.c
+++ b/client.c
@@ -58,6 +58,8 @@ focus(Client *c)
        drawtitle(c);
        XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
        XSync(dpy, False);
+       XChangeProperty(dpy, root, netatom[NetActiveWindow], XA_WINDOW, 32,
+                       PropModeReplace, (unsigned char *)&c->win, 1);
        while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
 }
 
@@ -459,6 +461,9 @@ unmanage(Client *c)
        arrange(NULL);
        if(sel)
                focus(sel);
+       else
+               XChangeProperty(dpy, root, netatom[NetActiveWindow], XA_WINDOW, 32,
+                               PropModeReplace, (unsigned char *)NULL, 1);
 }
 
 void
@@ -466,12 +471,14 @@ zoom(Arg *arg)
 {
        Client *c;
 
-       if(!sel)
+       if(!sel || (arrange != dotile) || sel->isfloat)
                return;
 
-       if(sel == getnext(clients) && sel->next)  {
+       if(sel == getnext(clients))  {
                if((c = getnext(sel->next)))
                        sel = c;
+               else
+                       return;
        }
 
        /* pop */