From: Carlos Garnacho <[email protected]>

This patch is necessary so GenericEvents with the 0x80 flag on are delivered
correctly.
---
 src/XlibInt.c |    2 +-
 src/xcb_io.c  |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/XlibInt.c b/src/XlibInt.c
index e094e7d..6f1ebae 100644
--- a/src/XlibInt.c
+++ b/src/XlibInt.c
@@ -759,7 +759,7 @@ struct stored_event {
 Bool
 _XIsEventCookie(Display *dpy, XEvent *ev)
 {
-    return (ev->xcookie.type == GenericEvent &&
+    return ((ev->xcookie.type & 0x7f) == GenericEvent &&
            dpy->generic_event_vec[ev->xcookie.extension & 0x7F] != NULL);
 }
 
diff --git a/src/xcb_io.c b/src/xcb_io.c
index 7e685de..be05e08 100644
--- a/src/xcb_io.c
+++ b/src/xcb_io.c
@@ -272,7 +272,7 @@ static void handle_response(Display *dpy, 
xcb_generic_reply_t *response, Bool in
                 * xcb_generic_event_t struct uses 4 bytes for internal
                 * numbering, so we need to shift the trailing data to
                 * be after the first 32 bytes. */
-               if(response->response_type == GenericEvent && ((xcb_ge_event_t 
*) response)->length)
+               if((response->response_type & 0x7f) == GenericEvent && 
((xcb_ge_event_t *) response)->length)
                {
                        xcb_ge_event_t *event = (xcb_ge_event_t *) response;
                        memmove(&event->full_sequence, &event[1], event->length 
* 4);
-- 
1.7.0.4

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to