]> git.sur5r.net Git - i3/i3/commitdiff
Improve directional moving of fullscreen containers 3195/head
authorOrestis Floros <orestisf1993@gmail.com>
Fri, 23 Mar 2018 13:46:40 +0000 (15:46 +0200)
committerOrestis Floros <orestisf1993@gmail.com>
Fri, 23 Mar 2018 13:46:40 +0000 (15:46 +0200)
Fixes #2993.

src/move.c
testcases/t/516-move.t

index a60a27caae947e9c97a92b6135e686aaf807752b..e8620c247b0339d4b0fe529ef97108816ad703c9 100644 (file)
@@ -256,7 +256,13 @@ void tree_move(Con *con, int direction) {
         return;
     }
 
-    if (con->parent->type == CT_WORKSPACE && con_num_children(con->parent) == 1) {
+    if (con->fullscreen_mode == CF_GLOBAL) {
+        DLOG("Not moving fullscreen global container\n");
+        return;
+    }
+
+    if ((con->fullscreen_mode == CF_OUTPUT) ||
+        (con->parent->type == CT_WORKSPACE && con_num_children(con->parent) == 1)) {
         /* This is the only con on this workspace */
         move_to_output_directed(con, direction);
         return;
index 5bcdb09afe8f59c756286bdd90e370998b46929b..3db8c4f01a005e5bb4da0e175fa51b417b357133 100644 (file)
@@ -97,4 +97,32 @@ is(scalar @{get_ws_content('left-top')}, 1, 'moved some window to left-bottom wo
 $compare_window = shift @{get_ws_content('left-top')};
 is($social_window->name, $compare_window->{name}, 'moved correct window to left-bottom workspace');
 
+#####################################################################
+# Moving a fullscreen container should change its output.
+#####################################################################
+
+kill_all_windows;
+
+cmd 'workspace left-top';
+open_window;
+my $fs_window = open_window;
+open_window;
+
+cmd '[id=' . $fs_window->id . '] fullscreen enable, move right';
+is(scalar @{get_ws_content('right-top')}, 1, 'moved fullscreen window to right-top workspace');
+
+#####################################################################
+# Moving a global fullscreen container should not change its output.
+#####################################################################
+
+kill_all_windows;
+
+cmd 'workspace left-top';
+open_window;
+open_window;
+open_window;
+
+cmd 'fullscreen global, move right, fullscreen disable';
+is(scalar @{get_ws_content('right-top')}, 0, 'global fullscreen window didn\'t change workspace with move');
+
 done_testing;