4 #include <xcb/xcb_event.h>
12 void handle_event(xcb_generic_event_t *evt)
14 switch (XCB_EVENT_RESPONSE_TYPE(evt)) {
16 PUTS("received a map request\n");
19 case XCB_CONFIGURE_REQUEST:
20 PUTS("received a configure request\n");
23 /* PUTS("ungrab key received"); */
26 PUTS("keypress received");
29 PUTS("keyrelease received");
31 case XCB_BUTTON_PRESS:
32 case XCB_BUTTON_RELEASE:
36 PRINTF("received event %i\n", XCB_EVENT_RESPONSE_TYPE(evt));
40 void map_request(xcb_generic_event_t *evt)
42 xcb_map_request_event_t *e = (xcb_map_request_event_t *) evt;
43 xcb_get_window_attributes_reply_t *wa;
44 xcb_window_t win = e->window;
45 wa = xcb_get_window_attributes_reply(dpy, xcb_get_window_attributes(dpy, win), NULL);
47 if ((wa != NULL && wa->override_redirect) || is_managed(win))
51 bool takes_focus = true;
52 client_t *c = make_client(win);
54 node_t *birth = make_node();
56 insert_node(desk, birth);
58 focus_node(desk, birth);
59 xcb_map_window(dpy, c->window);