Hi,
Sorry for the delay.

On Fri, 31 Jul 2009 12:07:55 +1000
Lex Trotman <[email protected]> wrote:

> Ok, it may be a GTK bug, I'll describe whats going on & you can decide
> and tell GTK, I've had zero success dealing with them in the past.
> 
> Geany keybindings are captured by keybindings.c/on_key_press_event and
> don't go to GTK but all other keys go to GTK
> 
> When a keybinding is first set Geany does NOT set it as a GTK
> accelerator, but the above callback catches it and it works fine, and
> if the binding is a key with a modifier the unmodified keys go to GTK
> and work fine
> 
> When keybindings are loaded from file (ie when Geany is closed and
> re-opened) they are set as GTK accelerators but are still caught by
> on_key_press_event before GTK.  But if the binding is a key with a
> modifier the unmodified key goes to GTK which appears to erroneously
> interpret it as an accelerator if the modifier in the
> gtk_widget_set_accelerator was GDK_SUPER_MASK

Not quite understanding this, perhaps it's better if you report that ;-)

> 
> The reason you can't set super as a modifier may be that the default
> modifier mask is set to block it.  I don't know what sets it, mine is
> 1c00000d which allows super at 4000000 and thats the value when the
> accelerator is set and when the keypress event occurs.

Mine is 67108864, so should work.

> Why does Geany process the accelerators twice? Once in Geany and once

Because we haven't found an easy way to update accelerators during
runtime.

> in GTK.  It seems to me that keybindings don't actually need to be set
> as accelerators since on_key_press_event catches them all first, and
> that would work around the GTK problem.

Yes, but this provides handy information to the user so they don't need
to lookup the keybinding.

Regards,
Nick
_______________________________________________
Geany-devel mailing list
[email protected]
http://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel

Reply via email to