summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2011-11-02 15:28:11 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2011-11-02 15:28:11 +1000
commit7147e45d3ff921ab4eaeaabca1e815595c1ab944 (patch)
tree8967fc2a76f243ecb95573f45ea8ca0f52c71184
parenta1bc93a7326a5706b1b78757b5857e8c8a4a3cc3 (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.c24
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;