]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: Fix focus when moving Cons
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 28 Nov 2010 17:05:53 +0000 (18:05 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 28 Nov 2010 17:05:53 +0000 (18:05 +0100)
When having two v-splits on a horizontal desktop:
----------------
|  t1   |  t3  |
|-------|------|
|  t2   |  t4  |
----------------
…focus is on t2, and you move it into the right v-split (move after h), the
focus was not properly updated. That is, inside the right v-split, focus was
correct, but the workspace focus was still pointing to the left v-split.

src/tree.c

index 2d8a13331cf077046bc6f7d3436e218212834173..71d46362c146fc94a32d68721c0e1071916930f4 100644 (file)
@@ -496,6 +496,11 @@ void tree_move(char way, orientation_t orientation) {
         /* TODO: don’t influence focus handling? */
     }
 
+    /* We need to call con_focus() to fix the focus stack "above" the container
+     * we just inserted the focused container into (otherwise, the parent
+     * container(s) would still point to the old container(s)). */
+    con_focus(focused);
+
     if (con_num_children(old_parent) == 0) {
         DLOG("Old container empty after moving. Let's close it\n");
         tree_close(old_parent, false, false);