Select our events on new after the reparent

Together with the previous commit, this makes us not lose clients across
restarts any more.

Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter 2010-08-09 13:33:08 +02:00
parent 0682499895
commit 84526dd630
2 changed files with 5 additions and 5 deletions

View File

@ -172,9 +172,6 @@ scan(void)
*(geom_wins[i]), NULL))) *(geom_wins[i]), NULL)))
continue; continue;
/* The window can be mapped, so force it to be undrawn for startup */
xcb_unmap_window(globalconf.connection, wins[i]);
client_manage(wins[i], geom_r, phys_screen, true); client_manage(wins[i], geom_r, phys_screen, true);
p_delete(&geom_r); p_delete(&geom_r);

View File

@ -451,8 +451,6 @@ client_manage(xcb_window_t w, xcb_get_geometry_reply_t *wgeom, int phys_screen,
startup_id_q = xcb_get_property(globalconf.connection, false, w, startup_id_q = xcb_get_property(globalconf.connection, false, w,
_NET_STARTUP_ID, XCB_GET_PROPERTY_TYPE_ANY, 0, UINT_MAX); _NET_STARTUP_ID, XCB_GET_PROPERTY_TYPE_ANY, 0, UINT_MAX);
xcb_change_window_attributes(globalconf.connection, w, XCB_CW_EVENT_MASK, select_input_val);
/* Make sure the window is automatically mapped if awesome exits or dies. */ /* Make sure the window is automatically mapped if awesome exits or dies. */
xcb_change_save_set(globalconf.connection, XCB_SET_MODE_INSERT, w); xcb_change_save_set(globalconf.connection, XCB_SET_MODE_INSERT, w);
@ -482,6 +480,11 @@ client_manage(xcb_window_t w, xcb_get_geometry_reply_t *wgeom, int phys_screen,
}); });
xcb_reparent_window(globalconf.connection, w, c->frame_window, 0, 0); xcb_reparent_window(globalconf.connection, w, c->frame_window, 0, 0);
xcb_map_window(globalconf.connection, w); xcb_map_window(globalconf.connection, w);
/* Do this now so that we don't get any events for the above
* (Else, reparent could cause an UnmapNotify) */
xcb_change_window_attributes(globalconf.connection, w, XCB_CW_EVENT_MASK, select_input_val);
luaA_object_emit_signal(globalconf.L, -1, "property::window", 0); luaA_object_emit_signal(globalconf.L, -1, "property::window", 0);
/* The frame window gets the border, not the real client window */ /* The frame window gets the border, not the real client window */