commit
6345124049
|
@ -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
|
||||
|
|
|
@ -59,4 +59,30 @@ cmd "move workspace $tmp2";
|
|||
# verify that the third window has the focus
|
||||
is($x->input_focus, $third->id, 'third window focused');
|
||||
|
||||
################################################################################
|
||||
# Ensure that moving a window to a workspace which has a fullscreen window does
|
||||
# not focus it (otherwise the user cannot get out of fullscreen mode anymore).
|
||||
################################################################################
|
||||
|
||||
$tmp = fresh_workspace;
|
||||
|
||||
my $fullscreen_window = open_window;
|
||||
cmd 'fullscreen';
|
||||
|
||||
my $nodes = get_ws_content($tmp);
|
||||
is(scalar @$nodes, 1, 'precisely one window');
|
||||
is($nodes->[0]->{focused}, 1, 'fullscreen window focused');
|
||||
my $old_id = $nodes->[0]->{id};
|
||||
|
||||
$tmp2 = fresh_workspace;
|
||||
my $move_window = open_window;
|
||||
cmd "move workspace $tmp";
|
||||
|
||||
cmd "workspace $tmp";
|
||||
|
||||
$nodes = get_ws_content($tmp);
|
||||
is(scalar @$nodes, 2, 'precisely two windows');
|
||||
is($nodes->[0]->{id}, $old_id, 'id unchanged');
|
||||
is($nodes->[0]->{focused}, 1, 'fullscreen window focused');
|
||||
|
||||
done_testing;
|
||||
|
|
Loading…
Reference in New Issue