tag.c
changeset 431 a230e4432bb7
parent 430 1e8aba00964e
child 440 9d73c8298b2e
equal deleted inserted replaced
430:1e8aba00964e 431:a230e4432bb7
    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)) {