Skip to content
Browse files

Disregard obsolete events, fixed issue #64

  • Loading branch information...
1 parent c78f55e commit fd519ffc40bdd13d8b418b6f95cf28ae6a167d7d @muennich committed Aug 17, 2012
Showing with 12 additions and 4 deletions.
  1. +1 −1 Makefile
  2. +11 −3 main.c
View
2 Makefile
@@ -1,4 +1,4 @@
-VERSION = git-20120816
+VERSION = git-20120817
PREFIX = /usr/local
MANPREFIX = $(PREFIX)/share/man
View
14 main.c
@@ -419,7 +419,8 @@ void run(void) {
int xfd;
fd_set fds;
struct timeval timeout;
- XEvent ev;
+ XEvent ev, nextev;
+ unsigned int qlen;
redraw();
@@ -450,7 +451,13 @@ void run(void) {
select(xfd + 1, &fds, 0, 0, &timeout);
}
- XNextEvent(win.env.dpy, &ev);
+ do {
+ XNextEvent(win.env.dpy, &ev);
+ qlen = XEventsQueued(win.env.dpy, QueuedAlready);
+ if (qlen > 0)
+ XPeekEvent(win.env.dpy, &nextev);
+ } while (qlen > 0 && ev.type == nextev.type);
+
switch (ev.type) {
/* handle events */
case ButtonPress:
@@ -476,7 +483,8 @@ void run(void) {
}
break;
case KeyPress:
- on_keypress(&ev.xkey);
+ if (qlen == 0 || ev.xkey.keycode != nextev.xkey.keycode)
+ on_keypress(&ev.xkey);
break;
case MotionNotify:
if (mode == MODE_IMAGE) {

0 comments on commit fd519ff

Please sign in to comment.
Something went wrong with that request. Please try again.