From: Michael Stapelberg Date: Sat, 10 Mar 2018 20:35:14 +0000 (+0100) Subject: Fix incorrect merge *sigh* X-Git-Tag: 4.16.1~11^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ffcf2bca85707e82ac1def6afb3a4e015dc98dfd;p=i3%2Fi3 Fix incorrect merge *sigh* --- diff --git a/src/con.c b/src/con.c index 4d0c43e3..985d07da 100644 --- a/src/con.c +++ b/src/con.c @@ -243,13 +243,6 @@ void con_focus(Con *con) { workspace_update_urgent_flag(con_get_workspace(con)); ipc_send_window_event("urgent", con); } - - /* Focusing a container with a floating parent should raise it to the top. Since - * con_focus is called recursively for each parent we don't need to use - * con_inside_floating(). */ - if (con->type == CT_FLOATING_CON) { - floating_raise_con(con); - } } /* diff --git a/src/handlers.c b/src/handlers.c index e1671c3b..50fd8566 100644 --- a/src/handlers.c +++ b/src/handlers.c @@ -1207,6 +1207,14 @@ static bool handle_clientleader_change(void *data, xcb_connection_t *conn, uint8 */ static void handle_focus_in(xcb_focus_in_event_t *event) { DLOG("focus change in, for window 0x%08x\n", event->event); + + if (event->event == root) { + DLOG("Received focus in for root window, refocusing the focused window.\n"); + con_focus(focused); + focused_id = XCB_NONE; + x_push_changes(croot); + } + Con *con; if ((con = con_by_window_id(event->event)) == NULL || con->window == NULL) return;