tests: move set_wm_class to X11::XCB::Window

This code was duplicated way too often for a long time :)
This commit is contained in:
Michael Stapelberg
2013-09-24 21:53:48 +02:00
parent 031de8f720
commit 8d38529bcd
10 changed files with 21 additions and 232 deletions

View File

@ -49,29 +49,9 @@ wait_for_unmap $window;
cmp_ok(@content, '==', 0, 'no more nodes');
diag('content = '. Dumper(\@content));
# TODO: move this to X11::XCB::Window
sub set_wm_class {
my ($id, $class, $instance) = @_;
# Add a _NET_WM_STRUT_PARTIAL hint
my $atomname = $x->atom(name => 'WM_CLASS');
my $atomtype = $x->atom(name => 'STRING');
$x->change_property(
PROP_MODE_REPLACE,
$id,
$atomname->id,
$atomtype->id,
8,
length($class) + length($instance) + 2,
"$instance\x00$class\x00"
);
}
$window = open_window(
name => 'Borderless window',
before_map => sub { set_wm_class($_->id, 'borderless', 'borderless') },
wm_class => 'borderless',
);
@content = @{get_ws_content($tmp)};
@ -190,7 +170,7 @@ $tmp = fresh_workspace;
$window = open_window(
name => 'usethis',
before_map => sub { set_wm_class($_->id, 'borderless', 'borderless') },
wm_class => 'borderless',
);
@content = @{get_ws_content($tmp)};
@ -208,8 +188,7 @@ sync_with_i3;
cmp_ok(@content, '==', 0, 'no nodes on this workspace now');
$window->_create;
set_wm_class($window->id, 'borderless', 'borderless');
$window->wm_class('borderless');
$window->name('notthis');
$window->map;
wait_for_map $window;
@ -238,7 +217,8 @@ $tmp = fresh_workspace;
$window = open_window(
name => 'usethis',
before_map => sub { set_wm_class($_->id, 'bar', 'foo') },
wm_class => 'bar',
instance => 'foo',
);
@content = @{get_ws_content($tmp)};
@ -264,7 +244,8 @@ $tmp = fresh_workspace;
$window = open_window(
name => 'usethis',
before_map => sub { set_wm_class($_->id, 'bar', 'foo') },
wm_class => 'bar',
instance => 'foo',
);
@content = @{get_ws_content($tmp)};
@ -292,7 +273,8 @@ $tmp = fresh_workspace;
$window = open_window(
name => 'usethis',
before_map => sub { set_wm_class($_->id, 'bar', 'foo') },
wm_class => 'bar',
instance => 'foo',
);
@content = @{get_ws_content($tmp)};