aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/X11/IfEvent.c
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/lib/X11/IfEvent.c')
-rw-r--r--nx-X11/lib/X11/IfEvent.c15
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;
}