Hi Lex,

> Doesn't matter what you do, any handler returning TRUE will stop other
> handlers being called within signal_emit before it returns to you.
> https://developer.gnome.org/gtk3/stable/GtkWidget.html#GtkWidget-key-press-event

This is true, for 'key-press-event' and 'key-release-event' at least.  However, 
for my 'pre-key-press-event', it is NOT the case; all connected callbacks are 
always called.  I'm guessing that GTK makes a distinction between events 
originating in X or the kernel, and user-created events, or maybe just event 
generated by g_signal_emit_by_name calls.

The upshot of all this is:

1.  Can't use key-press-event, because Geany filters out all key strokes bound 
by any installed plugin.
2.  Can't use key-release-event, because at least two other plugins use it, and 
filter out the event in some circumstances.
3.  My proposed pre-key-release-event signal is unfilterable, and so is 
suitable for plugins that need a 'look but don't touch' event.  However, it 
would still not stop a plugin determined to usurp a key bound to someone else.  
Despite that, I still think it's worth implementing.

This has been an interesting learning experience for me, so my thanks to you 
and to Matthew for all the discussion.

Cheers,
Austin.
_______________________________________________
Devel mailing list
Devel@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/devel

Reply via email to