diff options
-rw-r--r-- | event/events.c | 12 | ||||
-rw-r--r-- | event/xcb_event.h | 4 |
2 files changed, 13 insertions, 3 deletions
diff --git a/event/events.c b/event/events.c index 399c6ce..c19d01f 100644 --- a/event/events.c +++ b/event/events.c @@ -62,7 +62,7 @@ int xcb_handle_event(xcb_event_handlers_t *evenths, xcb_generic_event_t *event) return 0; } -void xcb_event_loop(xcb_event_handlers_t *evenths) +void xcb_wait_for_event_loop(xcb_event_handlers_t *evenths) { xcb_generic_event_t *event; while((event = xcb_wait_for_event(evenths->c))) @@ -72,6 +72,16 @@ void xcb_event_loop(xcb_event_handlers_t *evenths) } } +void xcb_poll_for_event_loop(xcb_event_handlers_t *evenths) +{ + xcb_generic_event_t *event; + while ((event = xcb_poll_for_event(evenths->c))) + { + handle_event(evenths, event); + free(event); + } +} + static void set_handler(xcb_generic_event_handler_t handler, void *data, xcb_event_handler_t *place) { xcb_event_handler_t eventh = { handler, data }; diff --git a/event/xcb_event.h b/event/xcb_event.h index ce4cdcd..9122893 100644 --- a/event/xcb_event.h +++ b/event/xcb_event.h @@ -14,8 +14,8 @@ xcb_event_handlers_t *xcb_alloc_event_handlers(xcb_connection_t *c); void xcb_free_event_handlers(xcb_event_handlers_t *evenths); xcb_connection_t *xcb_get_xcb_connection(xcb_event_handlers_t *evenths); -void xcb_event_loop(xcb_event_handlers_t *evenths); -int xcb_handle_event(xcb_event_handlers_t *evenths, xcb_generic_event_t *event); +void xcb_wait_for_event_loop(xcb_event_handlers_t *evenths); +void xcb_poll_for_event_loop(xcb_event_handlers_t *evenths); 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); |