Improve directional moving of fullscreen containers

Fixes #2993.
This commit is contained in:
Orestis Floros 2018-03-23 15:46:40 +02:00
parent 7411dfa5ef
commit 3ccaf11eab
2 changed files with 35 additions and 1 deletions

View 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;

View 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;