From 625401d1628757a67a2ab4eeaa68be965683889c Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Mon, 24 Dec 2012 14:49:19 +0100 Subject: [PATCH] Bugfix: handle MapRequests sent between i3 registering as a wm and handling events This fixes the problem where i3-nagbar does not come up because its MapRequest is ignored. fixes #892 --- src/main.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main.c b/src/main.c index 6d0f80cb..cb6767fb 100644 --- a/src/main.c +++ b/src/main.c @@ -777,6 +777,20 @@ int main(int argc, char *argv[]) { xcb_aux_sync(conn); xcb_generic_event_t *event; while ((event = xcb_poll_for_event(conn)) != NULL) { + if (event->response_type == 0) { + free(event); + continue; + } + + /* Strip off the highest bit (set if the event is generated) */ + int type = (event->response_type & 0x7F); + + /* We still need to handle MapRequests which are sent in the + * timespan starting from when we register as a window manager and + * this piece of code which drops events. */ + if (type == XCB_MAP_REQUEST) + handle_event(type, event); + free(event); } manage_existing_windows(root);