JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
simplified detach()
[dwm.git] / dwm.c
diff --git a/dwm.c b/dwm.c
index e135715..3d9a063 100644 (file)
--- a/dwm.c
+++ b/dwm.c
@@ -459,16 +459,10 @@ destroynotify(XEvent *e) {
 
 void
 detach(Client *c) {
-       Client *i;
+       Client **tc;
 
-       if (c != clients) {
-               for(i = clients; i->next != c; i = i->next);
-               i->next = c->next;
-       }
-       else {
-               clients = c->next;
-       }
-       c->next =  NULL;
+       for(tc = &clients; *tc && *tc != c; tc = &(*tc)->next);
+       *tc = c->next;
 }
 
 void
@@ -1642,6 +1636,8 @@ updatewmhints(Client *c) {
 
 void
 view(const Arg *arg) {
+       if(arg && (arg->i & TAGMASK) == tagset[seltags])
+               return;
        seltags ^= 1; /* toggle sel tagset */
        if(arg && (arg->ui & TAGMASK))
                tagset[seltags] = arg->i & TAGMASK;