JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
fixing c->weight handling
[dwm.git] / tag.c
diff --git a/tag.c b/tag.c
index ddffafa..5337d25 100644 (file)
--- a/tag.c
+++ b/tag.c
@@ -30,17 +30,6 @@ RULES
 static RReg *rreg = NULL;
 static unsigned int len = 0;
 
-static void
-applytag()
-{
-       /* asserts sel != NULL */
-       settitle(sel);
-       if(!isvisible(sel))
-               arrange(NULL);
-       else
-               drawstatus();
-}
-
 /* extern */
 
 Client *
@@ -117,8 +106,7 @@ settags(Client *c)
        if(!matched)
                for(i = 0; i < ntags; i++)
                        c->tags[i] = seltag[i];
-       for(i = 0; i < ntags && !c->tags[i]; i++);
-       c->weight = i;
+       for(c->weight = 0; c->weight < ntags && !c->tags[c->weight]; c->weight++);
 }
 
 void
@@ -132,7 +120,8 @@ tag(Arg *arg)
        for(i = 0; i < ntags; i++)
                sel->tags[i] = False;
        sel->tags[arg->i] = True;
-       applytag();
+       sel->weight = arg->i;
+       arrange(NULL);
 }
 
 void
@@ -147,5 +136,6 @@ toggletag(Arg *arg)
        for(i = 0; i < ntags && !sel->tags[i]; i++);
        if(i == ntags)
                sel->tags[arg->i] = True;
-       applytag();
+       for(sel->weight = 0; sel->weight < ntags && !sel->tags[sel->weight]; sel->weight++);
+       arrange(NULL);
 }