diff options
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | main.c | 9 | 
2 files changed, 10 insertions, 1 deletions
@@ -1,4 +1,4 @@ -VERSION   := git-20161128 +VERSION   := git-20161129  PREFIX    := /usr/local  MANPREFIX := $(PREFIX)/share/man @@ -458,6 +458,11 @@ void clear_resize(void)  	resized = false;  } +Bool is_input_ev(Display *dpy, XEvent *ev, XPointer arg) +{ +	return ev->type == ButtonPress || ev->type == KeyPress; +} +  void run_key_handler(const char *key, unsigned int mask)  {  	pid_t pid; @@ -468,6 +473,7 @@ void run_key_handler(const char *key, unsigned int mask)  	int fcnt = marked ? markcnt : 1;  	char kstr[32];  	struct stat *oldst, st; +	XEvent dump;  	if (keyhandler.f.err != 0) {  		if (!keyhandler.warned) { @@ -538,6 +544,9 @@ void run_key_handler(const char *key, unsigned int mask)  			f++;  		}  	} +	/* drop user input events that occured while running the key handler */ +	while (XCheckIfEvent(win.env.dpy, &dump, is_input_ev, NULL)); +  end:  	if (mode == MODE_IMAGE) {  		if (changed) {  | 
