]> git.sur5r.net Git - i3/i3/blobdiff - src/con.c
Merge branch 'master' into next
[i3/i3] / src / con.c
index 799148ef706b33e25d6402b18a4af50d38757645..f90d569f61c09717396705470c51cc46443b7a3b 100644 (file)
--- a/src/con.c
+++ b/src/con.c
@@ -656,8 +656,11 @@ void con_move_to_workspace(Con *con, Con *workspace, bool fix_coordinates, bool
     con_fix_percent(next);
 
     /* 7: focus the con on the target workspace (the X focus is only updated by
-     * calling tree_render(), so for the "real" focus this is a no-op). */
-    if (workspace->name[0] != '_' || workspace->name[1] != '_')
+     * calling tree_render(), so for the "real" focus this is a no-op).
+     * We don’t focus the con for i3 pseudo workspaces like __i3_scratch and
+     * we don’t focus when there is a fullscreen con on that workspace. */
+    if ((workspace->name[0] != '_' || workspace->name[1] != '_') &&
+        con_get_fullscreen_con(workspace, CF_OUTPUT) == NULL)
         con_focus(con_descend_focused(con));
 
     /* 8: when moving to a visible workspace on a different output, we keep the