On 19/01/2014, at 09:02, Andrius <andri...@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




_______________________________________________
Gtk-osx-users-list mailing list
Gtk-osx-users-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-osx-users-list

Reply via email to