tests: make focused_ws multi-monitor-safe, document it

This commit is contained in:
Michael Stapelberg 2012-01-08 16:32:58 +00:00
parent 6df971d5d5
commit 6e4a86b7d1

View File

@ -383,18 +383,19 @@ sub workspace_exists {
($name ~~ @{get_workspace_names()}) ($name ~~ @{get_workspace_names()})
} }
=head2 focused_ws
Returns the name of the currently focused workspace.
=cut
sub focused_ws { sub focused_ws {
my $i3 = i3(get_socket_path()); my $i3 = i3(get_socket_path());
my $tree = $i3->get_tree->recv; my $tree = $i3->get_tree->recv;
my @outputs = @{$tree->{nodes}}; my $focused = $tree->{focus}->[0];
my @cons; my $output = first { $_->{id} == $focused } @{$tree->{nodes}};
for my $output (@outputs) { my $content = first { $_->{type} == 2 } @{$output->{nodes}};
next if $output->{name} eq '__i3'; my $first = first { $_->{fullscreen_mode} == 1 } @{$content->{nodes}};
# get the first CT_CON of each output return $first->{name}
my $content = first { $_->{type} == 2 } @{$output->{nodes}};
my $first = first { $_->{fullscreen_mode} == 1 } @{$content->{nodes}};
return $first->{name}
}
} }
# #