summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Danjou <julien@danjou.info>2008-09-16 15:27:49 +0200
committerJulien Danjou <julien@danjou.info>2008-09-16 15:34:25 +0200
commit17132de01495c95833c2e8bafd66210a64d157d2 (patch)
tree9670df89cd7fc7d681d434efa5603abae78a5a03
parent26ab75265559a47487d90a0ae7077ca828757260 (diff)
event: define XCB_EVENT_RESPONSE_TYPE_MASK
And use it. Signed-off-by: Julien Danjou <julien@danjou.info>
-rw-r--r--event/event.c2
-rw-r--r--event/xcb_event.h4
-rw-r--r--image/test_bitmap.c3
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);