JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
no, reodering floating clients definately breaks the manage() policy which attaches...
[dwm.git] / tag.c
diff --git a/tag.c b/tag.c
index 512f355..9e997f9 100644 (file)
--- a/tag.c
+++ b/tag.c
@@ -106,6 +106,7 @@ settags(Client *c)
        if(!matched)
                for(i = 0; i < ntags; i++)
                        c->tags[i] = seltag[i];
+       for(c->weight = 0; c->weight < ntags && !c->tags[c->weight]; c->weight++);
 }
 
 void
@@ -119,9 +120,8 @@ tag(Arg *arg)
        for(i = 0; i < ntags; i++)
                sel->tags[i] = False;
        sel->tags[arg->i] = True;
-       settitle(sel);
-       if(!isvisible(sel))
-               arrange(NULL);
+       sel->weight = arg->i;
+       arrange(NULL);
 }
 
 void
@@ -136,7 +136,6 @@ toggletag(Arg *arg)
        for(i = 0; i < ntags && !sel->tags[i]; i++);
        if(i == ntags)
                sel->tags[arg->i] = True;
-       settitle(sel);
-       if(!isvisible(sel))
-               arrange(NULL);
+       sel->weight = (i == ntags) ? arg->i : i;
+       arrange(NULL);
 }