diff options
-rw-r--r-- | event/event.c | 2 | ||||
-rw-r--r-- | event/xcb_event.h | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/event/event.c b/event/event.c index e19a077..1d0f69c 100644 --- a/event/event.c +++ b/event/event.c @@ -47,7 +47,7 @@ static xcb_event_handler_t * get_event_handler(xcb_event_handlers_t *evenths, int event) { assert(event < 256); - event &= 0x7f; + event &= XCB_EVENT_RESPONSE_TYPE_MASK; assert(event >= 2); return &evenths->event[event - 2]; } diff --git a/event/xcb_event.h b/event/xcb_event.h index 19dd492..2e57bd6 100644 --- a/event/xcb_event.h +++ b/event/xcb_event.h @@ -35,6 +35,10 @@ extern "C" { #endif +#define XCB_EVENT_RESPONSE_TYPE_MASK (0x7f) +#define XCB_EVENT_RESPONSE_TYPE(e) (e->response_type & XCB_EVENT_RESPONSE_TYPE_MASK) +#define XCB_EVENT_SENT(e) (e->response_type & ~XCB_EVENT_RESPONSE_TYPE_MASK) + typedef int (*xcb_generic_event_handler_t)(void *data, xcb_connection_t *c, xcb_generic_event_t *event); typedef int (*xcb_generic_error_handler_t)(void *data, xcb_connection_t *c, xcb_generic_error_t *error); |