diff options
| -rw-r--r-- | client.c | 8 | ||||
| -rw-r--r-- | dwm.h | 2 | ||||
| -rw-r--r-- | tag.c | 10 | 
3 files changed, 10 insertions, 10 deletions
| @@ -199,7 +199,7 @@ void  manage(Window w, XWindowAttributes *wa)  {  	unsigned int i; -	Client *c, *tc; +	Client *c;  	Window trans;  	XSetWindowAttributes twa; @@ -238,11 +238,7 @@ manage(Window w, XWindowAttributes *wa)  			CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa);  	grabbuttons(c, False); -	if((tc = getclient(trans))) /* inherit tags */ -		for(i = 0; i < ntags; i++) -			c->tags[i] = tc->tags[i]; -	else -		settags(c); +	settags(c, getclient(trans));  	if(!c->isfloat)  		c->isfloat = trans  			|| (c->maxw && c->minw && @@ -115,7 +115,7 @@ extern int xerror(Display *dsply, XErrorEvent *ee);  extern void initrregs();  extern Client *getnext(Client *c);  extern Client *getprev(Client *c); -extern void settags(Client *c); +extern void settags(Client *c, Client *trans);  extern void tag(Arg *arg);  extern void toggletag(Arg *arg); @@ -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); | 
