applied Johannes Hofmann's patch, please test
This commit is contained in:
		
							parent
							
								
									b279cef670
								
							
						
					
					
						commit
						63d7190231
					
				
					 1 changed files with 18 additions and 40 deletions
				
			
		
							
								
								
									
										58
									
								
								dwm.c
									
										
									
									
									
								
							
							
						
						
									
										58
									
								
								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 grabkeys(void); | ||||
| static void initfont(const char *fontstr); | ||||
| static Bool isoccupied(unsigned int t); | ||||
| static Bool isprotodel(Client *c); | ||||
| static Bool isurgent(unsigned int t); | ||||
| static void keypress(XEvent *e); | ||||
| static void killclient(const Arg *arg); | ||||
| static void manage(Window w, XWindowAttributes *wa); | ||||
|  | @ -500,19 +498,23 @@ die(const char *errstr, ...) { | |||
| 
 | ||||
| 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; | ||||
| 	for(i = 0; i < LENGTH(tags); i++) { | ||||
| 		dc.w = TEXTW(tags[i]); | ||||
| 		if(tagset[seltags] & 1 << i) { | ||||
| 			drawtext(tags[i], dc.sel, isurgent(i)); | ||||
| 			drawsquare(sel && sel->tags & 1 << i, isoccupied(i), isurgent(i), dc.sel); | ||||
| 		} | ||||
| 		else { | ||||
| 			drawtext(tags[i], dc.norm, isurgent(i)); | ||||
| 			drawsquare(sel && sel->tags & 1 << i, isoccupied(i), isurgent(i), dc.norm); | ||||
| 		} | ||||
| 		col = tagset[seltags] & 1 << i ? dc.sel : dc.norm; | ||||
| 		drawtext(tags[i], col, urg & 1 << i); | ||||
| 		drawsquare(sel && sel->tags & 1 << i, occ & 1 << i, urg & 1 << i, col); | ||||
| 		dc.x += dc.w; | ||||
| 	} | ||||
| 	if(blw > 0) { | ||||
|  | @ -741,7 +743,7 @@ grabbuttons(Client *c, Bool focused) { | |||
| 			if(buttons[i].click == ClkClientWin) | ||||
| 				for(j = 0; j < LENGTH(modifiers); j++) | ||||
| 					XGrabButton(dpy, buttons[i].button, buttons[i].mask | modifiers[j], c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); | ||||
|         } else | ||||
| 	} else | ||||
| 		XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, | ||||
| 		            BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); | ||||
| } | ||||
|  | @ -749,6 +751,7 @@ grabbuttons(Client *c, Bool focused) { | |||
| void | ||||
| grabkeys(void) { | ||||
| 	unsigned int i, j; | ||||
| 	unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; | ||||
| 	KeyCode code; | ||||
| 	XModifierKeymap *modmap; | ||||
| 
 | ||||
|  | @ -764,14 +767,9 @@ grabkeys(void) { | |||
| 	XUngrabKey(dpy, AnyKey, AnyModifier, root); | ||||
| 	for(i = 0; i < LENGTH(keys); i++) { | ||||
| 		code = XKeysymToKeycode(dpy, keys[i].keysym); | ||||
| 		XGrabKey(dpy, code, keys[i].mod, root, True, | ||||
| 				GrabModeAsync, GrabModeAsync); | ||||
| 		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); | ||||
| 		for(j = 0; j < LENGTH(modifiers); j++) | ||||
| 			XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, True, | ||||
| 			         GrabModeAsync, GrabModeAsync); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  | @ -815,16 +813,6 @@ initfont(const char *fontstr) { | |||
| 	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 | ||||
| isprotodel(Client *c) { | ||||
| 	int i, n; | ||||
|  | @ -840,16 +828,6 @@ isprotodel(Client *c) { | |||
| 	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 | ||||
| keypress(XEvent *e) { | ||||
| 	unsigned int i; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue