diff options
author | Julien Danjou <julien@danjou.info> | 2008-09-16 15:27:49 +0200 |
---|---|---|
committer | Julien Danjou <julien@danjou.info> | 2008-09-16 15:34:25 +0200 |
commit | 17132de01495c95833c2e8bafd66210a64d157d2 (patch) | |
tree | 9670df89cd7fc7d681d434efa5603abae78a5a03 | |
parent | 26ab75265559a47487d90a0ae7077ca828757260 (diff) |
event: define XCB_EVENT_RESPONSE_TYPE_MASK
And use it.
Signed-off-by: Julien Danjou <julien@danjou.info>
-rw-r--r-- | event/event.c | 2 | ||||
-rw-r--r-- | event/xcb_event.h | 4 | ||||
-rw-r--r-- | image/test_bitmap.c | 3 |
3 files changed, 7 insertions, 2 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); diff --git a/image/test_bitmap.c b/image/test_bitmap.c index c9d5b49..27725c1 100644 --- a/image/test_bitmap.c +++ b/image/test_bitmap.c @@ -4,6 +4,7 @@ #include <assert.h> #include <xcb/xcb.h> #include "../aux/xcb_aux.h" +#include "../event/xcb_event.h" #include "xcb_image.h" #include "test.xbm" @@ -49,7 +50,7 @@ void process_events(xcb_connection_t *c, xcb_void_cookie_t cookie; while ((e = xcb_wait_for_event(c))) { - uint32_t r = e->response_type & 0x7f; + uint32_t r = XCB_EVENT_RESPONSE_TYPE(e); xcb_generic_error_t *err; fprintf(stderr, "event %d\n", r); |