equal
deleted
inserted
replaced
74 } |
74 } |
75 } |
75 } |
76 } |
76 } |
77 |
77 |
78 void |
78 void |
79 settags(Client *c) |
79 settags(Client *c, Client *trans) |
80 { |
80 { |
81 char prop[512]; |
81 char prop[512]; |
82 unsigned int i, j; |
82 unsigned int i, j; |
83 regmatch_t tmp; |
83 regmatch_t tmp; |
84 Bool matched = False; |
84 Bool matched = trans != NULL; |
85 XClassHint ch; |
85 XClassHint ch; |
86 |
86 |
87 if(XGetClassHint(dpy, c->win, &ch)) { |
87 if(matched) { |
|
88 for(i = 0; i < ntags; i++) |
|
89 c->tags[i] = trans->tags[i]; |
|
90 } |
|
91 else if(XGetClassHint(dpy, c->win, &ch)) { |
88 snprintf(prop, sizeof(prop), "%s:%s:%s", |
92 snprintf(prop, sizeof(prop), "%s:%s:%s", |
89 ch.res_class ? ch.res_class : "", |
93 ch.res_class ? ch.res_class : "", |
90 ch.res_name ? ch.res_name : "", c->name); |
94 ch.res_name ? ch.res_name : "", c->name); |
91 for(i = 0; !matched && i < len; i++) |
95 for(i = 0; !matched && i < len; i++) |
92 if(rreg[i].clregex && !regexec(rreg[i].clregex, prop, 1, &tmp, 0)) { |
96 if(rreg[i].clregex && !regexec(rreg[i].clregex, prop, 1, &tmp, 0)) { |