applied Johannes Hofmann's patch, please test
This commit is contained in:
		
							parent
							
								
									b279cef670
								
							
						
					
					
						commit
						63d7190231
					
				
							
								
								
									
										54
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								dwm.c
									
									
									
									
									
								
							| @ -159,9 +159,7 @@ static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size); | |||||||
| static void grabbuttons(Client *c, Bool focused); | static void grabbuttons(Client *c, Bool focused); | ||||||
| static void grabkeys(void); | static void grabkeys(void); | ||||||
| static void initfont(const char *fontstr); | static void initfont(const char *fontstr); | ||||||
| static Bool isoccupied(unsigned int t); |  | ||||||
| static Bool isprotodel(Client *c); | static Bool isprotodel(Client *c); | ||||||
| static Bool isurgent(unsigned int t); |  | ||||||
| static void keypress(XEvent *e); | static void keypress(XEvent *e); | ||||||
| static void killclient(const Arg *arg); | static void killclient(const Arg *arg); | ||||||
| static void manage(Window w, XWindowAttributes *wa); | static void manage(Window w, XWindowAttributes *wa); | ||||||
| @ -500,19 +498,23 @@ die(const char *errstr, ...) { | |||||||
| 
 | 
 | ||||||
| void | void | ||||||
| drawbar(void) { | drawbar(void) { | ||||||
| 	int i, x; | 	int x; | ||||||
|  | 	unsigned int i, occ = 0, urg = 0; | ||||||
|  | 	unsigned long *col; | ||||||
|  | 	Client *c; | ||||||
|  | 
 | ||||||
|  | 	for(c = clients; c; c = c->next) { | ||||||
|  | 		occ |= c->tags; | ||||||
|  | 		if(c->isurgent) | ||||||
|  | 			urg |= c->tags; | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	dc.x = 0; | 	dc.x = 0; | ||||||
| 	for(i = 0; i < LENGTH(tags); i++) { | 	for(i = 0; i < LENGTH(tags); i++) { | ||||||
| 		dc.w = TEXTW(tags[i]); | 		dc.w = TEXTW(tags[i]); | ||||||
| 		if(tagset[seltags] & 1 << i) { | 		col = tagset[seltags] & 1 << i ? dc.sel : dc.norm; | ||||||
| 			drawtext(tags[i], dc.sel, isurgent(i)); | 		drawtext(tags[i], col, urg & 1 << i); | ||||||
| 			drawsquare(sel && sel->tags & 1 << i, isoccupied(i), isurgent(i), dc.sel); | 		drawsquare(sel && sel->tags & 1 << i, occ & 1 << i, urg & 1 << i, col); | ||||||
| 		} |  | ||||||
| 		else { |  | ||||||
| 			drawtext(tags[i], dc.norm, isurgent(i)); |  | ||||||
| 			drawsquare(sel && sel->tags & 1 << i, isoccupied(i), isurgent(i), dc.norm); |  | ||||||
| 		} |  | ||||||
| 		dc.x += dc.w; | 		dc.x += dc.w; | ||||||
| 	} | 	} | ||||||
| 	if(blw > 0) { | 	if(blw > 0) { | ||||||
| @ -749,6 +751,7 @@ grabbuttons(Client *c, Bool focused) { | |||||||
| void | void | ||||||
| grabkeys(void) { | grabkeys(void) { | ||||||
| 	unsigned int i, j; | 	unsigned int i, j; | ||||||
|  | 	unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; | ||||||
| 	KeyCode code; | 	KeyCode code; | ||||||
| 	XModifierKeymap *modmap; | 	XModifierKeymap *modmap; | ||||||
| 
 | 
 | ||||||
| @ -764,13 +767,8 @@ grabkeys(void) { | |||||||
| 	XUngrabKey(dpy, AnyKey, AnyModifier, root); | 	XUngrabKey(dpy, AnyKey, AnyModifier, root); | ||||||
| 	for(i = 0; i < LENGTH(keys); i++) { | 	for(i = 0; i < LENGTH(keys); i++) { | ||||||
| 		code = XKeysymToKeycode(dpy, keys[i].keysym); | 		code = XKeysymToKeycode(dpy, keys[i].keysym); | ||||||
| 		XGrabKey(dpy, code, keys[i].mod, root, True, | 		for(j = 0; j < LENGTH(modifiers); j++) | ||||||
| 				GrabModeAsync, GrabModeAsync); | 			XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, True, | ||||||
| 		XGrabKey(dpy, code, keys[i].mod|LockMask, root, True, |  | ||||||
| 				GrabModeAsync, GrabModeAsync); |  | ||||||
| 		XGrabKey(dpy, code, keys[i].mod|numlockmask, root, True, |  | ||||||
| 				GrabModeAsync, GrabModeAsync); |  | ||||||
| 		XGrabKey(dpy, code, keys[i].mod|numlockmask|LockMask, root, True, |  | ||||||
| 			         GrabModeAsync, GrabModeAsync); | 			         GrabModeAsync, GrabModeAsync); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| @ -815,16 +813,6 @@ initfont(const char *fontstr) { | |||||||
| 	dc.font.height = dc.font.ascent + dc.font.descent; | 	dc.font.height = dc.font.ascent + dc.font.descent; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Bool |  | ||||||
| isoccupied(unsigned int t) { |  | ||||||
| 	Client *c; |  | ||||||
| 
 |  | ||||||
| 	for(c = clients; c; c = c->next) |  | ||||||
| 		if(c->tags & 1 << t) |  | ||||||
| 			return True; |  | ||||||
| 	return False; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Bool | Bool | ||||||
| isprotodel(Client *c) { | isprotodel(Client *c) { | ||||||
| 	int i, n; | 	int i, n; | ||||||
| @ -840,16 +828,6 @@ isprotodel(Client *c) { | |||||||
| 	return ret; | 	return ret; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Bool |  | ||||||
| isurgent(unsigned int t) { |  | ||||||
| 	Client *c; |  | ||||||
| 
 |  | ||||||
| 	for(c = clients; c; c = c->next) |  | ||||||
| 		if(c->isurgent && c->tags & 1 << t) |  | ||||||
| 			return True; |  | ||||||
| 	return False; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void | void | ||||||
| keypress(XEvent *e) { | keypress(XEvent *e) { | ||||||
| 	unsigned int i; | 	unsigned int i; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 anselm@anselm1
						anselm@anselm1