aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/X11/WinEvent.c
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/lib/X11/WinEvent.c')
-rw-r--r--nx-X11/lib/X11/WinEvent.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/nx-X11/lib/X11/WinEvent.c b/nx-X11/lib/X11/WinEvent.c
index 6adf76bb1..48801b739 100644
--- a/nx-X11/lib/X11/WinEvent.c
+++ b/nx-X11/lib/X11/WinEvent.c
@@ -34,7 +34,7 @@ extern long const _Xevent_to_mask[];
#define AllButtons (Button1MotionMask|Button2MotionMask|Button3MotionMask|\
Button4MotionMask|Button5MotionMask)
-/*
+/*
* Return the next event in the queue
* for the given window matching one of the events in the mask.
* Events earlier in the queue are not discarded.
@@ -43,23 +43,27 @@ extern long const _Xevent_to_mask[];
*/
int
-XWindowEvent (dpy, w, mask, event)
- register Display *dpy;
- Window w; /* Selected window. */
- long mask; /* Selected event mask. */
- register XEvent *event; /* XEvent to be filled in. */
+XWindowEvent (
+ 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;
LockDisplay(dpy);
+
+ /* Delete unclaimed cookies */
+ _XFreeEventCookies(dpy);
+
prev = NULL;
while (1) {
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) ||