| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -162,25 +162,25 @@ drawmenu(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.y = 0; | 
																 | 
																 | 
																	dc.y = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.w = mw; | 
																 | 
																 | 
																	dc.w = mw; | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.h = mh; | 
																 | 
																 | 
																	dc.h = mh; | 
															
														
														
													
														
															
																 | 
																 | 
																	drawtext(&dc, NULL, normcol, False); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	drawtext(&dc, NULL, normcol); | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.h = dc.font.height + 2; | 
																 | 
																 | 
																	dc.h = dc.font.height + 2; | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.y = topbar ? 0 : mh - dc.h; | 
																 | 
																 | 
																	dc.y = topbar ? 0 : mh - dc.h; | 
															
														
														
													
														
															
																 | 
																 | 
																	/* print prompt? */ | 
																 | 
																 | 
																	/* print prompt? */ | 
															
														
														
													
														
															
																 | 
																 | 
																	if(prompt) { | 
																 | 
																 | 
																	if(prompt) { | 
															
														
														
													
														
															
																 | 
																 | 
																		dc.w = promptw; | 
																 | 
																 | 
																		dc.w = promptw; | 
															
														
														
													
														
															
																 | 
																 | 
																		drawtext(&dc, prompt, selcol, False); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		drawtext(&dc, prompt, selcol); | 
															
														
														
													
														
															
																 | 
																 | 
																		dc.x += dc.w; | 
																 | 
																 | 
																		dc.x += dc.w; | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.w = mw - dc.x; | 
																 | 
																 | 
																	dc.w = mw - dc.x; | 
															
														
														
													
														
															
																 | 
																 | 
																	/* print command */ | 
																 | 
																 | 
																	/* print command */ | 
															
														
														
													
														
															
																 | 
																 | 
																	if(cmdw && item && lines == 0) | 
																 | 
																 | 
																	if(cmdw && item && lines == 0) | 
															
														
														
													
														
															
																 | 
																 | 
																		dc.w = cmdw; | 
																 | 
																 | 
																		dc.w = cmdw; | 
															
														
														
													
														
															
																 | 
																 | 
																	drawtext(&dc, *text ? text : NULL, normcol, False); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	drawtext(&dc, text, normcol); | 
															
														
														
													
														
															
																 | 
																 | 
																	if(lines > 0) | 
																 | 
																 | 
																	if(lines > 0) | 
															
														
														
													
														
															
																 | 
																 | 
																		drawmenuv(); | 
																 | 
																 | 
																		drawmenuv(); | 
															
														
														
													
														
															
																 | 
																 | 
																	else if(curr) | 
																 | 
																 | 
																	else if(curr) | 
															
														
														
													
														
															
																 | 
																 | 
																		drawmenuh(); | 
																 | 
																 | 
																		drawmenuh(); | 
															
														
														
													
														
															
																 | 
																 | 
																	XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, mw, mh, 0, 0); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	commitdraw(&dc, win); | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -189,16 +189,16 @@ drawmenuh(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.x += cmdw; | 
																 | 
																 | 
																	dc.x += cmdw; | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.w = spaceitem; | 
																 | 
																 | 
																	dc.w = spaceitem; | 
															
														
														
													
														
															
																 | 
																 | 
																	drawtext(&dc, curr->left ? "<" : NULL, normcol, False); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	drawtext(&dc, curr->left ? "<" : NULL, normcol); | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.x += dc.w; | 
																 | 
																 | 
																	dc.x += dc.w; | 
															
														
														
													
														
															
																 | 
																 | 
																	for(i = curr; i != next; i = i->right) { | 
																 | 
																 | 
																	for(i = curr; i != next; i = i->right) { | 
															
														
														
													
														
															
																 | 
																 | 
																		dc.w = MIN(textw(&dc, i->text), mw / 3); | 
																 | 
																 | 
																		dc.w = MIN(textw(&dc, i->text), mw / 3); | 
															
														
														
													
														
															
																 | 
																 | 
																		drawtext(&dc, i->text, (sel == i) ? selcol : normcol, False); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		drawtext(&dc, i->text, (sel == i) ? selcol : normcol); | 
															
														
														
													
														
															
																 | 
																 | 
																		dc.x += dc.w; | 
																 | 
																 | 
																		dc.x += dc.w; | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.w = spaceitem; | 
																 | 
																 | 
																	dc.w = spaceitem; | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.x = mw - dc.w; | 
																 | 
																 | 
																	dc.x = mw - dc.w; | 
															
														
														
													
														
															
																 | 
																 | 
																	drawtext(&dc, next ? ">" : NULL, normcol, False); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	drawtext(&dc, next ? ">" : NULL, normcol); | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -209,7 +209,7 @@ drawmenuv(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.y = topbar ? dc.h : 0; | 
																 | 
																 | 
																	dc.y = topbar ? dc.h : 0; | 
															
														
														
													
														
															
																 | 
																 | 
																	dc.w = mw - dc.x; | 
																 | 
																 | 
																	dc.w = mw - dc.x; | 
															
														
														
													
														
															
																 | 
																 | 
																	for(i = curr; i != next; i = i->right) { | 
																 | 
																 | 
																	for(i = curr; i != next; i = i->right) { | 
															
														
														
													
														
															
																 | 
																 | 
																		drawtext(&dc, i->text, (sel == i) ? selcol : normcol, False); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		drawtext(&dc, i->text, (sel == i) ? selcol : normcol); | 
															
														
														
													
														
															
																 | 
																 | 
																		dc.y += dc.h; | 
																 | 
																 | 
																		dc.y += dc.h; | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!XGetWindowAttributes(dpy, win, &wa)) | 
																 | 
																 | 
																	if(!XGetWindowAttributes(dpy, win, &wa)) | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -224,11 +224,10 @@ grabkeyboard(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	for(len = 1000; len; len--) { | 
																 | 
																 | 
																	for(len = 1000; len; len--) { | 
															
														
														
													
														
															
																 | 
																 | 
																		if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime) | 
																 | 
																 | 
																		if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime) | 
															
														
														
													
														
															
																 | 
																 | 
																		== GrabSuccess) | 
																 | 
																 | 
																		== GrabSuccess) | 
															
														
														
													
														
															
																 | 
																 | 
																			break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			return; | 
															
														
														
													
														
															
																 | 
																 | 
																		usleep(1000); | 
																 | 
																 | 
																		usleep(1000); | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!len) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		exit(EXIT_FAILURE); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	exit(EXIT_FAILURE); | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |