]> git.sur5r.net Git - i3/i3/commitdiff
Fix switching to a workspace on a different output
authorMichael Stapelberg <michael@stapelberg.de>
Sat, 8 Jan 2011 11:03:03 +0000 (12:03 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 8 Jan 2011 11:03:03 +0000 (12:03 +0100)
src/workspace.c

index 0694b977a442d72e2e525ca826515ecff89995c2..a1e653ea7c52514679e980a37c5ffb63fa8d993a 100644 (file)
@@ -211,14 +211,17 @@ void workspace_show(const char *num) {
         current->fullscreen_mode = CF_NONE;
     }
 
+    /* Check if the the currently focused con is on the same Output as the
+     * workspace we chose as 'old'. If not, use the workspace of the currently
+     * focused con */
+    if (con_get_workspace(focused)->parent != old->parent)
+        old = con_get_workspace(focused);
+
     /* enable fullscreen for the target workspace. If it happens to be the
      * same one we are currently on anyways, we can stop here. */
     workspace->fullscreen_mode = CF_OUTPUT;
     if (workspace == old)
         return;
-    /* disable fullscreen */
-    TAILQ_FOREACH(current, &(workspace->parent->nodes_head), nodes)
-        current->fullscreen_mode = CF_NONE;
 
     workspace_reassign_sticky(workspace);