Re: [gtk-osx-users] Switching keyboard layouts with Alt+Cmd+Space
- From: John Ralls <jralls ceridwen us>
- To: Andrius <andriusr yahoo com>
- Cc: "gtk-osx-users-list gnome org" <gtk-osx-users-list gnome org>
- Subject: Re: [gtk-osx-users] Switching keyboard layouts with Alt+Cmd+Space
- Date: Sun, 19 Jan 2014 14:59:18 -0800
On 19/01/2014, at 09:02, Andrius <andriusr yahoo com> wrote:
John,
I do not expect that my patch will be accepted, like other patches for 711019, so I did not submit it there.
I just wanted to show, how this particular problem of Alt+Cmd+Space not working on gtk-osx applications can
be solved. It shows how to switch keyboard layouts manually, using Carbon framework.
If You, as maintainer of gtk-osx, will find this useful, feel free to incorporate it in some place.
Cmd+M minimizes window, while Cmd+H hides application. As far as I know there is special function to enable
them in gtk-mac-integration, gtkosx_application_set_use_quartz_accelerators (). There should be some code
handling them, since without executing gtkosx_application_set_use_quartz_accelerators () they do not work
on my system.
Andrius
Andrius,
I agree that we don’t want to load up gdkkeys-quartz with a bunch of special cases, but it seems like a lot
of work for something you don’t expect to get pushed. In any case, sharing it on the bug is more effective
because Kris and Mitch don’t AFAIK read this list, but they do carry a lot of weight in deciding what gets
done about gtk-quartz issues. BTW, you should be doing work like that in a private git branch and using git
format patch to make the patch, both to be acceptable to Gnome and to protect your sanity while developing
it.
With set_use_quartz_accelerators enabled, you should also see all of the other Apple-defined accelerators
working properly as well: It grabs the accelerator and passes it to the Quartz responder chain. If Quartz
doesn’t eat it, it passes it on to Gtk. The problem with it is that if there’s a binding overloading an
accelerator, as is common with Cmd-(X|C|V), the accelerator is fired instead of the binding. This causes the
owner of the menu to respond to the event rather than the widget with current keyboard focus, preventing you
from e.g. cutting or pasting into dialog boxes.
Yes, there probably should be code in gtkosxapplication to handle the accelerators set in
create_apple_menu(). That doesn’t solve the problem, though: I don’t want to add a ton of pass-through
functions to gtkosxapplication or gtk-quartz to implement the
system accelerators. As I said on the bug, the right answer is to hand unused key events back to Quartz.
Regards,
John Ralls
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]