Re: Alt and Command keys in the quartz backend



On Sep 6, 2011, at 6:53 AM, Michael Natterer wrote:

> On Tue, 2011-09-06 at 06:37 -0700, John Ralls wrote:
>> On Sep 6, 2011, at 1:27 AM, Michael Natterer wrote:
>> 
>>> Hi all,
>>> 
>>> Currently, the mapping of the Alt and Command keys on the mac
>>> is completely screwed:
>>> 
>>> - The key labeled "Command" maps to GDK_MOD1_MASK (which is
>>> essentially interpreted as Alt by all existing code)
>>> 
>>> - The key labeled "Alt" isn't mapped to any modifier at all
>>> 
>>> Now there is a lot of discussion in these bug reports:
>>> 
>>> https://bugzilla.gnome.org/show_bug.cgi?id=607115
>>> https://bugzilla.gnome.org/show_bug.cgi?id=605799
>>> 
>>> but at the bottom of all that is the above mentioned
>>> problem. After it's fixed we can fix whatever keymap
>>> issues in GTK on top.
>>> 
>>> It seems pretty obvious to me that the key labeled
>>> "Alt" should produce GDK_MOD1_MASK because all existing
>>> code considers that being the "Alt" key.
>>> 
>>> The only question is what to map "Command" to, and we
>>> are free to choose whatever, since the behavior will
>>> change away from the current one of producing GDK_MOD1_MASK
>>> anyway.
>>> 
>>> I personally prefer GDK_META_MASK because it's what the
>>> "Windows" key is mapped to on PC keyboards, but that's not
>>> a strong reason (and it is, as saidm completely arbitrary
>>> anyway).
>>> 
>>> Opinions? I volunteer to patch up all 3 branches once
>>> we come to an agreement.
>> 
>> How long have you been using a Mac as your primary computer? On what mac-native programs that you use daily is the alt/OPTION key used as a stand-alone modifier for shortcuts with default settings (any preference changes you've made don't count)?
> 
> I don't see how this is relevant, but i bow to your experience.
> 
>> How does the code "know" what key produces the mod1 bit? Why would it care?
> 
> Code *knows* that MOD1 is Alt, and there is a key named "Alt"
> on the keyboard. Therefore it must produce MOD1. There is nothing
> to argue here.
> 
> There is no reason to not use that consistency across
> 3 platforms when we can get it for free.

Really? Gtk+ is activating the camera in my Macbook and watching me push the alt/option key? 

Your argument is absurd on its face, as I said in the discussion on bug 607119. 

As for why using a Mac is relevant, the object of the exercise is to produce programs which are as well-integrated as possible into the Mac user experience. If mac users want to run programs that behave like X11, they run them under X11 (which is provided by Apple as part of the OS, and which initializes automatically when the machine receives an X11 connection request). Users of Gtk programs with the quartz backend want their programs to behave like native programs. Since you don't actually use a Mac, and apparently haven't surveyed mac users, why do you think that you should be able to dictate how they use their computers, or how the Quartz maintainers configure Gtk to work on a Mac?

By the way, the key you claim is named "Alt" is in fact named "option"; it has a smaller label "alt" in the upper left corner of the key, just as the "command" key has a quatrefoil symbol in the upper left corner (older keyboards had an Apple logo on that key as well, and it was often referred to as the "Apple" key). It is sometimes referred to as the "alt/option" key, and while it's true that the enum name for it in Cocoa is "NSAlternateKey", that's invisible to users. As I've also explained more than once in the long running discussion on 607119, the primary function of the "option" key is to extend the keyboard for i18n, a feature upon which many European users depend, and which conflicts with using "option" as a naked accelerator (i.e., without command or control as additional modifiers) in text context -- meaning at all in practice. In other words,  you're right that there's nothing to argue, but you're wrong that "option" should be mapped to Mod1.

Regards,
John Ralls



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]