I don't have a GTK+3 answer for you. We wrestled with this in Ardour which uses GTK+2, and cooked up quite a substantial hack to make it work. You can read that and the explanatory comments here:
https://github.com/Ardour/ardour/blob/4.7/gtk2_ardour/utils.cc#L448 SInce that tag (4.7) we've now replaced the entire GTK+2 accelerator mechanism with our own, because we cannot be limited by GTK+ ideas that some accelerators are off-limits. We now use our own system which hooks into the key_press and key_release events for every top level window. We do use Actions (such as they were in GTK+2) for almost everything, and we continue to push our bindings into GTK+ so that accelerators show up in menu items. I can't recommend this drastic of an approach, just noting that we had to take it. On Sat, Jun 4, 2016 at 3:34 PM, productivememberofsociety666 < productivememberofsociety...@weltenfunktion.de> wrote: > Hello, > > I just want to reask a question that was asked on StackOverflow [1] but > didn't receive a satisfactory answer there. Maybe someone on this list > has a better idea: > > I want to use ordinary letters *without modifiers* as accelerators in my > GTK+ 3 application, similar to vim's control scheme. For example, the > user could just press 'r' and it would remove an item in a list or > something like that. > So far this works fine, except the accelerators are also enabled while > the user has focused a text editing widget, and as a result it's > impossible to write text without activating a dozen accelerators in the > process. > > Is there a standard way to disable accelerators in text editing > widgets? If not, what would you say is the best approach for a > workaround? E.g. should I try to intercept key presses somehow and check > whether a text editing widget is focused, or should I try to remove > accelerators whenever such a widget is focused and add them again when > it loses focus, or do something else entirely? > > I'm using GTK+ 3 and try to adhere to the "new" recommended way of > handling menu items, accelerators and corresponding actions using Gio, > i.e. the way it is described in [2]. > > Thank you in advance! > > [1]: http://stackoverflow.com/q/22782726/2748899 > > [2]: https://wiki.gnome.org/HowDoI/GAction > > _______________________________________________ > gtk-list mailing list > gtk-list@gnome.org > https://mail.gnome.org/mailman/listinfo/gtk-list >
_______________________________________________ gtk-list mailing list gtk-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-list