Re: Disabling accelerators when typing text
- Date: Sat, 4 Jun 2016 16:06:34 -0400
- From: Paul Davis <paul@xxxxxxxxxxxxxxxxxxxxx>
- Subject: Re: Disabling accelerators when typing text
Just for reference, the somewhat conceptually cleaner current code is here:This doesn't show how to use GTK+ to do what you want, but it does illustrate the basic idea: figure out if there is a focused widget in the window; if there is, and that widget is a GtkEntry, treat the key event differently than if it is not (or if there is no focus widget.
On Sat, Jun 4, 2016 at 4:03 PM, Paul Davis <paul@xxxxxxxxxxxxxxxxxxxxx> wrote:
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: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 <productivememberofsociety666@xxxxxxxxxxxxxxxxx> wrote:Hello,
I just want to reask a question that was asked on StackOverflow  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
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 .
Thank you in advance!
gtk-list mailing list
_______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx https://mail.gnome.org/mailman/listinfo/gtk-list