Bugfix: Disallow focusing other windows when in fullscreen mode (Thanks aksr)
Fixes: #579
This commit is contained in:
parent
d972704205
commit
1ff321bc3f
|
@ -436,6 +436,13 @@ restart:
|
|||
focus:
|
||||
TOK_FOCUS
|
||||
{
|
||||
if (focused &&
|
||||
focused->type != CT_WORKSPACE &&
|
||||
focused->fullscreen_mode != CF_NONE) {
|
||||
LOG("Cannot change focus while in fullscreen mode.\n");
|
||||
break;
|
||||
}
|
||||
|
||||
owindow *current;
|
||||
|
||||
if (match_is_empty(¤t_match)) {
|
||||
|
@ -486,6 +493,13 @@ focus:
|
|||
}
|
||||
| TOK_FOCUS direction
|
||||
{
|
||||
if (focused &&
|
||||
focused->type != CT_WORKSPACE &&
|
||||
focused->fullscreen_mode != CF_NONE) {
|
||||
LOG("Cannot change focus while in fullscreen mode.\n");
|
||||
break;
|
||||
}
|
||||
|
||||
int direction = $2;
|
||||
switch (direction) {
|
||||
case TOK_LEFT:
|
||||
|
@ -513,6 +527,13 @@ focus:
|
|||
}
|
||||
| TOK_FOCUS window_mode
|
||||
{
|
||||
if (focused &&
|
||||
focused->type != CT_WORKSPACE &&
|
||||
focused->fullscreen_mode != CF_NONE) {
|
||||
LOG("Cannot change focus while in fullscreen mode.\n");
|
||||
break;
|
||||
}
|
||||
|
||||
printf("should focus: ");
|
||||
|
||||
if ($2 == TOK_TILING)
|
||||
|
@ -545,6 +566,13 @@ focus:
|
|||
}
|
||||
| TOK_FOCUS level
|
||||
{
|
||||
if (focused &&
|
||||
focused->type != CT_WORKSPACE &&
|
||||
focused->fullscreen_mode != CF_NONE) {
|
||||
LOG("Cannot change focus while in fullscreen mode.\n");
|
||||
break;
|
||||
}
|
||||
|
||||
if ($2 == TOK_PARENT)
|
||||
level_up();
|
||||
else level_down();
|
||||
|
|
|
@ -169,4 +169,22 @@ is(fullscreen_windows(), 0, 'amount of fullscreen windows after fullscreen comma
|
|||
# clean up the workspace so that it will be cleaned when switching away
|
||||
cmd 'kill' for (@{get_ws_content($tmp)});
|
||||
|
||||
################################################################################
|
||||
# Verify that changing focus while in fullscreen does not work.
|
||||
################################################################################
|
||||
|
||||
$tmp = fresh_workspace;
|
||||
|
||||
my $other = open_window;
|
||||
is($x->input_focus, $other->id, 'other window focused');
|
||||
|
||||
$window = open_window;
|
||||
is($x->input_focus, $window->id, 'window focused');
|
||||
|
||||
cmd 'fullscreen';
|
||||
is($x->input_focus, $window->id, 'fullscreen window focused');
|
||||
|
||||
cmd 'focus left';
|
||||
is($x->input_focus, $window->id, 'fullscreen window still focused');
|
||||
|
||||
done_testing;
|
||||
|
|
Loading…
Reference in New Issue