Re: [Gtk-osx-users] accelerator problem with GtkOSXApplication
Status: Beta
Brought to you by:
jralls
|
From: John R. <jr...@ce...> - 2011-02-14 20:23:45
|
On Feb 14, 2011, at 11:15 AM, Olivier Sessink wrote: > On 02/14/2011 04:03 PM, John Ralls wrote: >> >> On Feb 14, 2011, at 4:14 AM, Olivier Sessink wrote: >> >>>> Accelerator mapping in GtkOSXApplication is handled the Gtk way, with GtkAccelMaps. This is mentioned in the GtkOSXApplication documentation. >>>> >>>> Option/Alt is handled a bit too generically in gdk-quartz, where it's used for i18n regardless of context and consequently ignored when used as an accelerator. Ideally this handling should only occur in the input method, but I haven't figured out how to do that yet and Kristian Reitveld doesn't think it's important enough to do anything about. If anyone knows enough about the simple input method to write a patch to fix this it would be most welcome. Post it to https://bugzilla.gnome.org/show_bug.cgi?id=617583. >>>> >>> >>> so what are my options if I do not know the details about input >>> methods? I can go back to ige-mac-integration and try to get my menu >>> problem solved, but that seems to be a step backwards.. Are there >>> other options? Converting the shortcuts in the application code >>> somehow? >> >> Like I said, GtkAccelMaps: http://library.gnome.org/devel/gtk/stable/gtk-Accelerator-Maps.html >> >> There's even an example in test-integration. > > sorry perhaps I've not understand you correctly. GtkAccelMaps as shown > in test-integration.c can be used to modify the accelerator for an entry > in the menu. But from your email I understood that this will not help to > fix the problem with the <alt> key. Is that correct or not? > > Futhermore, why I really would like to get the 'magic' behavior of > ige-mac-integration: I have about 295 menu entries in Bluefish (that's > why I really need <alt> to maximise the number of entries that have an > accelerator). In the old ige-mac-integration code all entries were > automatically converted from <control> to <command>. With the new > GtkOSXApplication code it seems I need something like 600 lines of extra > code to replace all accelerators, and I should try to keep these in > sync. Or is this again a misunderstanding and can I get the 'magic' > behavior with a few lines of code? > > forgive me for my ignorance on this subject, I'm not a fulltime gtk > programmer and it's sometimes hard to keep track of all the > possibilities in gtk. > 1. No, your map has to use something other than the alt key on OSX. The example in test-integration uses one line of code to modify ALL of the accelerators. Go RTFM. 2. I'm not going back to the automatic thing. Get a accelmap file, do sed -i '' s/alt/meta/i mapfile, and add it to your bundle. Add a call to load it somewhere (you should have that already if you've done a good job on the Gtk side). That's effectively what the automatic conversion in ige-mac-integration did. Rest assured that your non-english-speaking users would rather have the option key for typing non-ascii text than for accelerators, but if you want to turn that off, use the local copy of gtk-osx.modules (it's installed in ~/Source/jhbuild/modulesets by gtk-osx-build-setup.sh) and comment out the keymap patches. Aside: In what HIG does it say that you should have an accelerator for every menu item? Are you trying to compete with Emacs? No, no forgiveness. I am absolutely not going to teach you to use Gtk -- for one thing, I'm not good enough at it myself to do any teaching. Go study the documentation. Regards, John Ralls |