1d100d6e16
A window may become unmapped on manage when an assignment command unmaps the window, such as moving it to the scratchpad or killing it. This can cause i3 focus to be an unmapped window and different than X focus which can lead to complications fixes #1283
59 lines
1.5 KiB
Perl
59 lines
1.5 KiB
Perl
#!perl
|
|
# vim:ts=4:sw=4:expandtab
|
|
#
|
|
# Please read the following documents before working on tests:
|
|
# • http://build.i3wm.org/docs/testsuite.html
|
|
# (or docs/testsuite)
|
|
#
|
|
# • http://build.i3wm.org/docs/lib-i3test.html
|
|
# (alternatively: perldoc ./testcases/lib/i3test.pm)
|
|
#
|
|
# • http://build.i3wm.org/docs/ipc.html
|
|
# (or docs/ipc)
|
|
#
|
|
# • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf
|
|
# (unless you are already familiar with Perl)
|
|
#
|
|
# Test that an assignment that unmaps a window does not disturb input focus.
|
|
# This can cause i3 focus to be an unmapped window and different than X focus
|
|
# which can lead to complications
|
|
# Ticket: #1283
|
|
# Bug still in: 4.8-24-g60070de
|
|
use i3test i3_autostart => 0;
|
|
|
|
my $config = <<'EOT';
|
|
# i3 config file (v4)
|
|
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
|
|
|
|
for_window [class="^special_kill$"] kill
|
|
for_window [class="^special_scratchpad$"] move scratchpad
|
|
EOT
|
|
|
|
my $pid = launch_with_config($config);
|
|
|
|
my $win = open_window;
|
|
|
|
my $scratch_window = open_window(
|
|
wm_class => 'special_scratchpad',
|
|
dont_map => 1
|
|
);
|
|
$scratch_window->map;
|
|
sync_with_i3;
|
|
|
|
is($x->input_focus, $win->{id},
|
|
'an assignment that sends a window to the scratchpad should not disturb focus');
|
|
|
|
my $kill_window = open_window(
|
|
wm_class => 'special_kill',
|
|
dont_map => 1
|
|
);
|
|
$kill_window->map;
|
|
sync_with_i3;
|
|
|
|
is($x->input_focus, $win->{id},
|
|
'an assignment that kills a window should not disturb focus');
|
|
|
|
exit_gracefully($pid);
|
|
|
|
done_testing;
|