JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
does this preserve z order for anthony?
[dwm.git] / tag.c
diff --git a/tag.c b/tag.c
index 5337d25..fafc2c5 100644 (file)
--- a/tag.c
+++ b/tag.c
@@ -76,15 +76,19 @@ initrregs()
 }
 
 void
-settags(Client *c)
+settags(Client *c, Client *trans)
 {
        char prop[512];
        unsigned int i, j;
        regmatch_t tmp;
-       Bool matched = False;
+       Bool matched = trans != NULL;
        XClassHint ch;
 
-       if(XGetClassHint(dpy, c->win, &ch)) {
+       if(matched) {
+               for(i = 0; i < ntags; i++)
+                       c->tags[i] = trans->tags[i];
+       }
+       else if(XGetClassHint(dpy, c->win, &ch)) {
                snprintf(prop, sizeof(prop), "%s:%s:%s",
                                ch.res_class ? ch.res_class : "",
                                ch.res_name ? ch.res_name : "", c->name);
@@ -136,6 +140,6 @@ toggletag(Arg *arg)
        for(i = 0; i < ntags && !sel->tags[i]; i++);
        if(i == ntags)
                sel->tags[arg->i] = True;
-       for(sel->weight = 0; sel->weight < ntags && !sel->tags[sel->weight]; sel->weight++);
+       sel->weight = (i == ntags) ? arg->i : i;
        arrange(NULL);
 }