]> git.sur5r.net Git - i3/i3/blob - testcases/t/63-wm-state.t
Merge branch 'userguide-mark'
[i3/i3] / testcases / t / 63-wm-state.t
1 #!perl
2 # vim:ts=4:sw=4:expandtab
3 #
4 # Tests if WM_STATE is WM_STATE_NORMAL when mapped and WM_STATE_WITHDRAWN when
5 # unmapped.
6 #
7 use X11::XCB qw(:all);
8 use i3test;
9
10 BEGIN {
11     use_ok('X11::XCB::Window');
12     use_ok('X11::XCB::Event::Generic');
13     use_ok('X11::XCB::Event::MapNotify');
14     use_ok('X11::XCB::Event::ClientMessage');
15 }
16
17 my $x = X11::XCB::Connection->new;
18
19 my $window = $x->root->create_child(
20     class => WINDOW_CLASS_INPUT_OUTPUT,
21     rect => [ 0, 0, 30, 30 ],
22     background_color => '#00ff00',
23     event_mask => [ 'structure_notify' ],
24 );
25
26 $window->name('Window 1');
27 $window->map;
28
29 diag('window mapped');
30
31 sleep 0.5;
32
33 is($window->state, ICCCM_WM_STATE_NORMAL, 'WM_STATE normal');
34
35 $window->unmap;
36
37 sleep 0.5;
38
39 is($window->state, ICCCM_WM_STATE_WITHDRAWN, 'WM_STATE withdrawn');
40
41 done_testing;