diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2011-11-02 15:28:11 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2011-11-02 15:28:11 +1000 |
commit | 7147e45d3ff921ab4eaeaabca1e815595c1ab944 (patch) | |
tree | 8967fc2a76f243ecb95573f45ea8ca0f52c71184 | |
parent | a1bc93a7326a5706b1b78757b5857e8c8a4a3cc3 (diff) |
Suck down all events if we have data on the fd
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | multitouch.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/multitouch.c b/multitouch.c index d5d14b5..dccb2be 100644 --- a/multitouch.c +++ b/multitouch.c @@ -139,22 +139,24 @@ static int main_loop(struct multitouch *mt) while (running) { - XEvent ev; - XGenericEventCookie *cookie = &ev.xcookie; - if (poll(&fd, 1, 500) <= 0) continue; - XNextEvent(mt->dpy, &ev); - if (XGetEventData(mt->dpy, cookie) && - cookie->type == GenericEvent && - cookie->extension == mt->xi_opcode) - { - print_event(mt, cookie->data); - } + while (XPending(mt->dpy)) { + XEvent ev; + XGenericEventCookie *cookie = &ev.xcookie; - XFreeEventData(mt->dpy, cookie); + XNextEvent(mt->dpy, &ev); + if (XGetEventData(mt->dpy, cookie) && + cookie->type == GenericEvent && + cookie->extension == mt->xi_opcode) + { + print_event(mt, cookie->data); + } + + XFreeEventData(mt->dpy, cookie); + } } return EXIT_SUCCESS; |