]> git.sur5r.net Git - i3/i3/commitdiff
Use $self->message in subscribe
authorMichael Stapelberg <michael@stapelberg.de>
Mon, 22 Mar 2010 21:33:26 +0000 (22:33 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 19 Aug 2017 16:13:19 +0000 (18:13 +0200)
lib/AnyEvent/I3.pm

index 282f24a5ae4c37270733dfb969c83a5e8f08e69e..310fa5efe65321d3c540a224d9a8c91da3006273 100644 (file)
@@ -157,24 +157,25 @@ sub _handle_i3_message {
 Subscribes to the given event types. This function awaits a hashref with the
 key being the name of the event and the value being a callback.
 
-    $i3->subscribe({
+    my %callbacks = (
         workspace => sub { say "Workspaces changed" }
-    });
+    );
+
+    if ($i3->subscribe(\%callbacks)->recv->{success})
+        say "Successfully subscribed";
+    }
 
 =cut
 sub subscribe {
     my ($self, $callbacks) = @_;
 
-    my $payload = encode_json [ keys %{$callbacks} ];
-    my $len = length($payload);
-    my $message = $magic . pack("LL", $len, TYPE_SUBSCRIBE) . $payload;
-    $self->{ipchdl}->push_write($message);
-
     # Register callbacks for each message type
     for my $key (keys %{$callbacks}) {
         my $type = $events{$key};
         $self->{callbacks}->{$type} = $callbacks->{$key};
     }
+
+    $self->message(TYPE_SUBSCRIBE, [ keys %{$callbacks} ])
 }
 
 =head2 $i3->message($type, $content)