some other small fixes
This commit is contained in:
		
							parent
							
								
									0fe52c63ea
								
							
						
					
					
						commit
						2ffdc1936c
					
				
							
								
								
									
										6
									
								
								event.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								event.c
									
									
									
									
									
								
							| @ -254,13 +254,15 @@ keypress(XEvent *e) | |||||||
| 	XKeyEvent *ev = &e->xkey; | 	XKeyEvent *ev = &e->xkey; | ||||||
| 
 | 
 | ||||||
| 	keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); | 	keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); | ||||||
| 	for(i = 0; i < len; i++) | 	for(i = 0; i < len; i++) { | ||||||
| 		if(keysym == key[i].keysym && | 		if(keysym == key[i].keysym && | ||||||
| 				CLEANMASK(key[i].mod) == CLEANMASK(ev->state)) { | 				CLEANMASK(key[i].mod) == CLEANMASK(ev->state)) | ||||||
|  | 		{ | ||||||
| 			if(key[i].func) | 			if(key[i].func) | ||||||
| 				key[i].func(&key[i].arg); | 				key[i].func(&key[i].arg); | ||||||
| 			return; | 			return; | ||||||
| 		} | 		} | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void | static void | ||||||
|  | |||||||
							
								
								
									
										16
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								main.c
									
									
									
									
									
								
							| @ -196,6 +196,7 @@ main(int argc, char *argv[]) | |||||||
| 
 | 
 | ||||||
| 	XSetErrorHandler(NULL); | 	XSetErrorHandler(NULL); | ||||||
| 	xerrorxlib = XSetErrorHandler(xerror); | 	xerrorxlib = XSetErrorHandler(xerror); | ||||||
|  | 	XSync(dpy, False); | ||||||
| 
 | 
 | ||||||
| 	/* init atoms */ | 	/* init atoms */ | ||||||
| 	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); | 	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); | ||||||
| @ -269,13 +270,6 @@ main(int argc, char *argv[]) | |||||||
| 		if(i < 0) | 		if(i < 0) | ||||||
| 			eprint("select failed\n"); | 			eprint("select failed\n"); | ||||||
| 		else if(i > 0) { | 		else if(i > 0) { | ||||||
| 			if(FD_ISSET(xfd, &rd)) { |  | ||||||
| 				while(XPending(dpy)) { |  | ||||||
| 					XNextEvent(dpy, &ev); |  | ||||||
| 					if(handler[ev.type]) |  | ||||||
| 						(handler[ev.type])(&ev); /* call handler */ |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 			if(readin && FD_ISSET(STDIN_FILENO, &rd)) { | 			if(readin && FD_ISSET(STDIN_FILENO, &rd)) { | ||||||
| 				readin = NULL != fgets(stext, sizeof(stext), stdin); | 				readin = NULL != fgets(stext, sizeof(stext), stdin); | ||||||
| 				if(readin) | 				if(readin) | ||||||
| @ -284,9 +278,15 @@ main(int argc, char *argv[]) | |||||||
| 					strcpy(stext, "broken pipe"); | 					strcpy(stext, "broken pipe"); | ||||||
| 				drawstatus(); | 				drawstatus(); | ||||||
| 			} | 			} | ||||||
|  | 			if(FD_ISSET(xfd, &rd)) { | ||||||
|  | 				while(XPending(dpy)) { | ||||||
|  | 					XNextEvent(dpy, &ev); | ||||||
|  | 					if(handler[ev.type]) | ||||||
|  | 						(handler[ev.type])(&ev); /* call handler */ | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 |  | ||||||
| 	cleanup(); | 	cleanup(); | ||||||
| 	XCloseDisplay(dpy); | 	XCloseDisplay(dpy); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user