]> git.sur5r.net Git - i3/i3/commitdiff
Fix incorrect merge *sigh* 3170/head
authorMichael Stapelberg <michael@stapelberg.de>
Sat, 10 Mar 2018 20:35:14 +0000 (21:35 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 10 Mar 2018 20:35:14 +0000 (21:35 +0100)
src/con.c
src/handlers.c

index 4d0c43e3562133e59920bf359b177fca974e90c3..985d07da2dd8e58058fe7e0bea207f62ab7ac572 100644 (file)
--- 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);
-    }
 }
 
 /*
index e1671c3b4bec2df918fdf70d89d38a29ee77c0d1..50fd85669223267e123a97ebe5bdfea09c9ab1e3 100644 (file)
@@ -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;