JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
implement multi-tag selection through button3 click on the specific tag
[dwm.git] / client.c
index 8a139e8..5be438e 100644 (file)
--- a/client.c
+++ b/client.c
@@ -24,7 +24,7 @@ resizetitle(Client *c)
                c->tw = c->w + 2;
        c->tx = c->x + c->w - c->tw + 2;
        c->ty = c->y;
-       if(c->tags[tsel])
+       if(isvisible(c))
                XMoveResizeWindow(dpy, c->title, c->tx, c->ty, c->tw, c->th);
        else
                XMoveResizeWindow(dpy, c->title, c->tx + 2 * sw, c->ty, c->tw, c->th);
@@ -276,7 +276,7 @@ manage(Window w, XWindowAttributes *wa)
        /* mapping the window now prevents flicker */
        XMapRaised(dpy, c->win);
        XMapRaised(dpy, c->title);
-       if(c->tags[tsel])
+       if(isvisible(c))
                focus(c);
 }
 
@@ -411,7 +411,7 @@ togglemax(Arg *arg)
                sel->h = sh - 2 - bh;
 
                higher(sel);
-               resize(sel, True, TopLeft);
+               resize(sel, arrange == dofloat, TopLeft);
 
                sel->x = ox;
                sel->y = oy;
@@ -438,13 +438,8 @@ unmanage(Client *c)
                c->next->prev = c->prev;
        if(c == clients)
                clients = c->next;
-       if(sel == c) {
-               sel = getnext(c->next);
-               if(!sel)
-                       sel = getprev(c->prev);
-               if(!sel)
-                       sel = clients;
-       }
+       if(sel == c)
+               sel = getnext(clients);
        free(c->tags);
        free(c);
 
@@ -461,7 +456,7 @@ zoom(Arg *arg)
 {
        Client *c;
 
-       if(!sel || (arrange != dotile) || sel->isfloat)
+       if(!sel || (arrange != dotile) || sel->isfloat || sel->ismax)
                return;
 
        if(sel == getnext(clients))  {
@@ -472,13 +467,11 @@ zoom(Arg *arg)
        }
 
        /* pop */
-       if(sel->prev)
-               sel->prev->next = sel->next;
+       sel->prev->next = sel->next;
        if(sel->next)
                sel->next->prev = sel->prev;
        sel->prev = NULL;
-       if(clients)
-               clients->prev = sel;
+       clients->prev = sel;
        sel->next = clients;
        clients = sel;
        arrange(NULL);