attempt to grab the keyboard only 1000 times, not forever.
							parent
							
								
									73120414e2
								
							
						
					
					
						commit
						f555908cef
					
				| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
# dmenu version
 | 
			
		||||
VERSION = 2.7
 | 
			
		||||
VERSION = 2.8
 | 
			
		||||
 | 
			
		||||
# Customize below to fit your system
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										16
									
								
								main.c
								
								
								
								
							
							
						
						
									
										16
									
								
								main.c
								
								
								
								
							| 
						 | 
				
			
			@ -108,11 +108,17 @@ drawmenu(void) {
 | 
			
		|||
	XFlush(dpy);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
static Bool
 | 
			
		||||
grabkeyboard(void) {
 | 
			
		||||
	while(XGrabKeyboard(dpy, root, True, GrabModeAsync,
 | 
			
		||||
			 GrabModeAsync, CurrentTime) != GrabSuccess)
 | 
			
		||||
	unsigned int len;
 | 
			
		||||
 | 
			
		||||
	for(len = 1000; len; len--) {
 | 
			
		||||
		if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime)
 | 
			
		||||
			== GrabSuccess)
 | 
			
		||||
			break;
 | 
			
		||||
		usleep(1000);
 | 
			
		||||
	}
 | 
			
		||||
	return len > 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static unsigned long
 | 
			
		||||
| 
						 | 
				
			
			@ -456,10 +462,10 @@ main(int argc, char *argv[]) {
 | 
			
		|||
	root = RootWindow(dpy, screen);
 | 
			
		||||
	if(isatty(STDIN_FILENO)) {
 | 
			
		||||
		maxname = readstdin();
 | 
			
		||||
		grabkeyboard();
 | 
			
		||||
		running = grabkeyboard();
 | 
			
		||||
	}
 | 
			
		||||
	else { /* prevent keypress loss */
 | 
			
		||||
		grabkeyboard();
 | 
			
		||||
		running = grabkeyboard();
 | 
			
		||||
		maxname = readstdin();
 | 
			
		||||
	}
 | 
			
		||||
	/* init modifier map */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue