On Oct 9, 2013, at 12:34 PM, Andrius <andri...@yahoo.com> wrote:

> Hi all,
> I have one interesting issue that could not figure out how to solve. Using 
> gtk+3.6.4 on MacOSX 10.8.4.
> I want to override default key bindings for some widgets, most important are 
> GtkEntry and GtkTextView. I did search on forums, but nothing useful was 
> found. Tried several things that are described in gtk+3 docs, but it seems 
> that nothing from these works on MacOSX:
> 1. Tried to but into gtk-keys.css following code:
> @binding-set gtk-mac-cmd-c
> {
>   bind "<meta>x" { "cut-clipboard" () };
>   bind "<meta>c" { "copy-clipboard" () };
>   bind "<meta>v" { "paste-clipboard" () };
>   unbind "<ctrl>x";
>   unbind "<ctrl>c";
>   unbind "<ctrl>v";
> }
> GtkEntry {
>   gtk-key-bindings: gtk-mac-cmd-c;
> }
> No effect, all actions on GtkEntry still are done with ctrl+...
> 2. Tried loading binding_set into program with GtkCssProvider like in this 
> pseudocode:
> provider = gtk_css_provider_new ();
> gtk_css_provider_load_from_path (provider, filename, &error)) ;    
> gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), 
> GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_USER);
> The css file I am loading has binding-set like in #1. Again, binding did not 
> changed, although styles that were in css file were applied successfully. It 
> looks that @binding-set rule is not processed for some reason on MacOSX.
> 3. The only way that works is to connect key-press-event signal to the 
> GtkEntry and handle cmd+... combinations in signal callback manually. But 
> this way I am having both ctrl+v and cmd+v doing the same thing - pasting 
> text, for example. And having to handle this for each widget separately is 
> not something that one would be wanting to do.
> I am wondering if anybody knows solution to this problem... or is it know bug?

It was a Gtk bug, since fixed. Rebuilding with the latest modulesets will get 
you your command-key accelerators and bindings back... with one caveat: Don't 
set use_quartz_accelerators to TRUE, because then the menu accelerators grab 
the key binding before gtk can see it, and it gets sent to whatever window has 
menu focus instead of the one that has keyboard focus.

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