diff --git a/systray.c b/systray.c index 576c99da4..cbdb0e868 100644 --- a/systray.c +++ b/systray.c @@ -155,6 +155,10 @@ systray_request_handle(xcb_window_t embed_win, int phys_screen, xembed_info_t *i select_input_val); xwindow_set_state(embed_win, XCB_WM_STATE_WITHDRAWN); + /* we grab the window, but also make sure it's automatically reparented back + * to the root window if we should die. + */ + xcb_change_save_set(globalconf.connection, XCB_SET_MODE_INSERT, embed_win); xcb_reparent_window(globalconf.connection, embed_win, globalconf.screens.tab[phys_screen].systray.window, 0, 0);