i3test::XTEST: don’t “use i3test” to avoid clobbering state

Before this commit, the $i3_autostart variable was accidentally overridden.
This commit is contained in:
Michael Stapelberg 2017-09-14 11:44:49 +02:00
parent 3a31a76b2a
commit 53e7f18710
3 changed files with 26 additions and 9 deletions

View File

@ -793,14 +793,7 @@ sub get_socket_path {
if ($cache && defined($_cached_socket_path)) { if ($cache && defined($_cached_socket_path)) {
return $_cached_socket_path; return $_cached_socket_path;
} }
my $socketpath = i3test::Util::get_socket_path($x);
my $atom = $x->atom(name => 'I3_SOCKET_PATH');
my $cookie = $x->get_property(0, $x->get_root_window(), $atom->id, GET_PROPERTY_TYPE_ANY, 0, 256);
my $reply = $x->get_property_reply($cookie->{sequence});
my $socketpath = $reply->{value};
if ($socketpath eq "/tmp/nested-$ENV{DISPLAY}") {
$socketpath .= '-activation';
}
$_cached_socket_path = $socketpath; $_cached_socket_path = $socketpath;
return $socketpath; return $socketpath;
} }

View File

@ -5,9 +5,13 @@ use strict;
use warnings; use warnings;
use v5.10; use v5.10;
use X11::XCB qw(GET_PROPERTY_TYPE_ANY);
use X11::XCB::Connection;
use Exporter qw(import); use Exporter qw(import);
our @EXPORT = qw( our @EXPORT = qw(
slurp slurp
get_socket_path
); );
=encoding utf-8 =encoding utf-8
@ -38,6 +42,25 @@ sub slurp {
return $content; return $content;
} }
=head2 get_socket_path([X11::XCB::Connection])
Gets the socket path from the C<I3_SOCKET_PATH> atom stored on the X11 root
window.
=cut
sub get_socket_path {
my ($x) = @_;
$x //= X11::XCB::Connection->new();
my $atom = $x->atom(name => 'I3_SOCKET_PATH');
my $cookie = $x->get_property(0, $x->get_root_window(), $atom->id, GET_PROPERTY_TYPE_ANY, 0, 256);
my $reply = $x->get_property_reply($cookie->{sequence});
my $socketpath = $reply->{value};
if ($socketpath eq "/tmp/nested-$ENV{DISPLAY}") {
$socketpath .= '-activation';
}
return $socketpath;
}
=head1 AUTHOR =head1 AUTHOR
Michael Stapelberg <michael@i3wm.org> Michael Stapelberg <michael@i3wm.org>

View File

@ -5,7 +5,8 @@ use strict;
use warnings; use warnings;
use v5.10; use v5.10;
use i3test i3_autostart => 0; use Test::More;
use i3test::Util qw(get_socket_path);
use lib qw(@abs_top_srcdir@/AnyEvent-I3/blib/lib); use lib qw(@abs_top_srcdir@/AnyEvent-I3/blib/lib);
use AnyEvent::I3; use AnyEvent::I3;
use ExtUtils::PkgConfig; use ExtUtils::PkgConfig;