diff options
Diffstat (limited to 'nx-X11/lib/X11/ChkWinEv.c')
-rw-r--r-- | nx-X11/lib/X11/ChkWinEv.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/nx-X11/lib/X11/ChkWinEv.c b/nx-X11/lib/X11/ChkWinEv.c index 381c30cdc..9fb7db06a 100644 --- a/nx-X11/lib/X11/ChkWinEv.c +++ b/nx-X11/lib/X11/ChkWinEv.c @@ -34,30 +34,34 @@ extern long const _Xevent_to_mask[]; #define AllButtons (Button1MotionMask|Button2MotionMask|Button3MotionMask|\ Button4MotionMask|Button5MotionMask) -/* +/* * Check existing events in queue to find if any match. If so, return. * If not, flush buffer and see if any more events are readable. If one * matches, return. If all else fails, tell the user no events found. */ -Bool XCheckWindowEvent (dpy, w, mask, event) - register Display *dpy; - Window w; /* Selected window. */ - long mask; /* Selected event mask. */ - register XEvent *event; /* XEvent to be filled in. */ +Bool XCheckWindowEvent ( + register Display *dpy, + Window w, /* Selected window. */ + long mask, /* Selected event mask. */ + register XEvent *event) /* XEvent to be filled in. */ { register _XQEvent *prev, *qelt; unsigned long qe_serial = 0; int n; /* time through count */ LockDisplay(dpy); + + /* Delete unclaimed cookies */ + _XFreeEventCookies(dpy); + prev = NULL; for (n = 3; --n >= 0;) { for (qelt = prev ? prev->next : dpy->head; qelt; prev = qelt, qelt = qelt->next) { if ((qelt->event.xany.window == w) && - (qelt->event.type < LASTEvent) && + (qelt->event.type < GenericEvent) && (_Xevent_to_mask[qelt->event.type] & mask) && ((qelt->event.type != MotionNotify) || (mask & AllPointers) || |