applied Connors cleanup patch of Eckehards proposed fix of applyrules(), thanks everyone involved
This commit is contained in:
		
							parent
							
								
									dec4850d05
								
							
						
					
					
						commit
						0f1f30daca
					
				
							
								
								
									
										40
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								dwm.c
									
									
									
									
									
								
							| @ -289,31 +289,31 @@ applyrules(Client *c) { | |||||||
| 	unsigned int i; | 	unsigned int i; | ||||||
| 	const Rule *r; | 	const Rule *r; | ||||||
| 	Monitor *m; | 	Monitor *m; | ||||||
| 	XClassHint ch = { 0 }; | 	XClassHint ch = { NULL, NULL }; | ||||||
| 
 | 
 | ||||||
| 	/* rule matching */ | 	/* rule matching */ | ||||||
| 	c->isfloating = c->tags = 0; | 	c->isfloating = c->tags = 0; | ||||||
| 	if(XGetClassHint(dpy, c->win, &ch)) { | 	XGetClassHint(dpy, c->win, &ch); | ||||||
| 		class = ch.res_class ? ch.res_class : broken; | 	class    = ch.res_class ? ch.res_class : broken; | ||||||
| 		instance = ch.res_name ? ch.res_name : broken; | 	instance = ch.res_name  ? ch.res_name  : broken; | ||||||
| 		for(i = 0; i < LENGTH(rules); i++) { | 
 | ||||||
| 			r = &rules[i]; | 	for(i = 0; i < LENGTH(rules); i++) { | ||||||
| 			if((!r->title || strstr(c->name, r->title)) | 		r = &rules[i]; | ||||||
| 			&& (!r->class || strstr(class, r->class)) | 		if((!r->title || strstr(c->name, r->title)) | ||||||
| 			&& (!r->instance || strstr(instance, r->instance))) | 		&& (!r->class || strstr(class, r->class)) | ||||||
| 			{ | 		&& (!r->instance || strstr(instance, r->instance))) | ||||||
| 				c->isfloating = r->isfloating; | 		{ | ||||||
| 				c->tags |= r->tags; | 			c->isfloating = r->isfloating; | ||||||
| 				for(m = mons; m && m->num != r->monitor; m = m->next); | 			c->tags |= r->tags; | ||||||
| 				if(m) | 			for(m = mons; m && m->num != r->monitor; m = m->next); | ||||||
| 					c->mon = m; | 			if(m) | ||||||
| 			} | 				c->mon = m; | ||||||
| 		} | 		} | ||||||
| 		if(ch.res_class) |  | ||||||
| 			XFree(ch.res_class); |  | ||||||
| 		if(ch.res_name) |  | ||||||
| 			XFree(ch.res_name); |  | ||||||
| 	} | 	} | ||||||
|  | 	if(ch.res_class) | ||||||
|  | 		XFree(ch.res_class); | ||||||
|  | 	if(ch.res_name) | ||||||
|  | 		XFree(ch.res_name); | ||||||
| 	c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags]; | 	c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user