]> git.sur5r.net Git - i3/i3/commitdiff
tests: make focused_ws multi-monitor-safe, document it
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 8 Jan 2012 16:32:58 +0000 (16:32 +0000)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 8 Jan 2012 16:32:58 +0000 (16:32 +0000)
testcases/lib/i3test.pm

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