167bdd26b7
Use 'kill window' to kill a specific window (for example only one specific popup), use 'kill client' to kill the whole application (or X11 connection to be specific).
67 lines
1.6 KiB
Perl
67 lines
1.6 KiB
Perl
#!perl
|
|
# vim:ts=4:sw=4:expandtab
|
|
#
|
|
# Tests if WM_STATE is WM_STATE_NORMAL when mapped and WM_STATE_WITHDRAWN when
|
|
# unmapped.
|
|
#
|
|
use X11::XCB qw(:all);
|
|
use X11::XCB::Connection;
|
|
use i3test;
|
|
|
|
my $x = X11::XCB::Connection->new;
|
|
|
|
sub two_windows {
|
|
my $tmp = fresh_workspace;
|
|
|
|
ok(@{get_ws_content($tmp)} == 0, 'no containers yet');
|
|
|
|
my $first = open_standard_window($x);
|
|
my $second = open_standard_window($x);
|
|
|
|
is($x->input_focus, $second->id, 'second window focused');
|
|
ok(@{get_ws_content($tmp)} == 2, 'two containers opened');
|
|
|
|
return $tmp;
|
|
}
|
|
|
|
##############################################################
|
|
# 1: open two windows (in the same client), kill one and see if
|
|
# the other one is still there
|
|
##############################################################
|
|
|
|
my $tmp = two_windows;
|
|
|
|
cmd 'kill';
|
|
|
|
sleep 0.25;
|
|
|
|
ok(@{get_ws_content($tmp)} == 1, 'one container left after killing');
|
|
|
|
##############################################################
|
|
# 2: same test case as test 1, but with the explicit variant
|
|
# 'kill window'
|
|
##############################################################
|
|
|
|
my $tmp = two_windows;
|
|
|
|
cmd 'kill window';
|
|
|
|
sleep 0.25;
|
|
|
|
ok(@{get_ws_content($tmp)} == 1, 'one container left after killing');
|
|
|
|
##############################################################
|
|
# 3: open two windows (in the same client), use 'kill client'
|
|
# and check if both are gone
|
|
##############################################################
|
|
|
|
my $tmp = two_windows;
|
|
|
|
cmd 'kill client';
|
|
|
|
sleep 0.25;
|
|
|
|
ok(@{get_ws_content($tmp)} == 0, 'no containers left after killing');
|
|
|
|
done_testing;
|