diff options
Diffstat (limited to 'nx-X11/lib/X11/IfEvent.c')
-rw-r--r-- | nx-X11/lib/X11/IfEvent.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/nx-X11/lib/X11/IfEvent.c b/nx-X11/lib/X11/IfEvent.c index 434e815f7..1a5eef7ce 100644 --- a/nx-X11/lib/X11/IfEvent.c +++ b/nx-X11/lib/X11/IfEvent.c @@ -29,25 +29,25 @@ in this Software without prior written authorization from The Open Group. #endif #include "Xlibint.h" -/* +/* * Flush output and (wait for and) return the next event matching the * predicate in the queue. */ int -XIfEvent (dpy, event, predicate, arg) - register Display *dpy; +XIfEvent ( + register Display *dpy, + register XEvent *event, Bool (*predicate)( Display* /* display */, XEvent* /* event */, char* /* arg */ - ); /* function to call */ - register XEvent *event; - char *arg; + ), /* function to call */ + char *arg) { register _XQEvent *qelt, *prev; unsigned long qe_serial = 0; - + LockDisplay(dpy); prev = NULL; while (1) { @@ -58,6 +58,7 @@ XIfEvent (dpy, event, predicate, arg) && (*predicate)(dpy, &qelt->event, arg)) { *event = qelt->event; _XDeq(dpy, prev, qelt); + _XStoreEventCookie(dpy, event); UnlockDisplay(dpy); return 0; } |