http://www.perlmonks.org?node_id=1067154


in reply to Re^2: Gtk2 X11 GrabKey
in thread Gtk2 X11 GrabKey

Thanks all!

Unfortunately I don't see event-loop in X11::Protocol, i.e. polling capabilities. I don't wan't go to low-level capabilities, i.e. poll underlying socket for events. I'll try to use the libkeybinder, and tell the details here.

PS. Mixed usage of Gtk2 events and X11 events seems to be leading to some messy:

... my $seq = $x->GrabKey( $k->KeysymToKeycode("z"), 'AnyModifier', $x->root, 0, 'Asynchronous', 'Asynchronous'); $x->event_handler('queue'); my %event = $x->next_event; ### %event my $t = AE::timer 0, 1, sub { my %event = $x->next_event; # %event }; Gtk2->main;
It exists with:
Protocol error: bad 2 (Value); Sequence Number 4 Opcode (33, 0) = GrabKey Bad value 183 (0xb7) at ./gtk-treeview-action line 31.

Replies are listed 'Best First'.
Re^4: Gtk2 X11 GrabKey
by dcmertens (Scribe) on Dec 14, 2013 at 18:32 UTC

    Shouldn't you say something like return unless my %event = $x->dequeue_event rather than $x->next_event? The docs seem to suggest that next_event will block until you get your final results. As to your error, I'm not sure what to say as I don't use X11. Sorry.