X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=tag.c;h=7bc4da0337793584f55d49db3dd03e7e437a680c;hb=5056bb952ddd9d667d2897ab09324ef7ce1596ea;hp=bc36f086eb2c892ce56e0bb5ef3da0cbcbce6d84;hpb=aa13727067af829b94461eb36aa029297ed8e6b9;p=dwm.git diff --git a/tag.c b/tag.c index bc36f08..7bc4da0 100644 --- a/tag.c +++ b/tag.c @@ -78,18 +78,18 @@ initrregs() void settags(Client *c) { - char classinst[256]; + char prop[512]; unsigned int i, j; regmatch_t tmp; Bool matched = False; XClassHint ch; if(XGetClassHint(dpy, c->win, &ch)) { - snprintf(classinst, sizeof(classinst), "%s:%s", + snprintf(prop, sizeof(prop), "%s:%s:%s", ch.res_class ? ch.res_class : "", - ch.res_name ? ch.res_name : ""); + ch.res_name ? ch.res_name : "", c->name); for(i = 0; !matched && i < len; i++) - if(rreg[i].clregex && !regexec(rreg[i].clregex, classinst, 1, &tmp, 0)) { + if(rreg[i].clregex && !regexec(rreg[i].clregex, prop, 1, &tmp, 0)) { c->isfloat = rule[i].isfloat; for(j = 0; rreg[i].tregex && j < ntags; j++) { if(!regexec(rreg[i].tregex, tags[j], 1, &tmp, 0)) { @@ -120,8 +120,12 @@ tag(Arg *arg) sel->tags[i] = False; sel->tags[arg->i] = True; settitle(sel); + detach(sel); + attach(sel); if(!isvisible(sel)) arrange(NULL); + else + drawstatus(); } void @@ -137,6 +141,10 @@ toggletag(Arg *arg) if(i == ntags) sel->tags[arg->i] = True; settitle(sel); + detach(sel); + attach(sel); if(!isvisible(sel)) arrange(NULL); + else + drawstatus(); }