emacs-pretest-bug
[Top][All Lists]
Advanced

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

Re: Carbon: Option-as-Meta Sometimes Inputs Accented Characters


From: YAMAMOTO Mitsuharu
Subject: Re: Carbon: Option-as-Meta Sometimes Inputs Accented Characters
Date: Sat, 12 May 2007 20:17:15 +0900 (JST)

>>>>> On Sat, 12 May 2007 07:51:28 +0100, David Reitter <address@hidden> said:

> On 12 May 2007, at 05:58, Tom Tobin wrote:
>> I'm using the Aquamacs nightlies (Intel), and have Option set to
>> act as Meta (no accented characters).  When I use and hold down a
>> meta-key combo (say, M-v to scroll the page), Aquamacs will often
>> let the equivalent accented character slip through (e.g., √ for
>> M-v).  So far, I've only been able to reproduce this behavior if
>> the command in question involves scrolling; the quickest way to
>> reproduce it is to scroll up and down quickly in alternation,
>> holding down each respective key for a few seconds each time.

> Can anyone reproduce this? This is a build from the 22 branch, with
> `mac-option-modifier' set to `meta'.

> What I can reproduce is holding down M-n: when input just once, it
> just brings up an echo area message saying that it's not bound. But
> when held down (which causes the input to repeat), it'll input the
> tilde dead key (˜) just like when the option modifier is passed to
> the system.  NB Switching off `mac-input-method-mode' (a patch in
> Aquamacs) doesn't change anything, and the problem shows up in a
> (Carbon) build straight from the GNU Emacs CVS as well. But I can't
> reproduce the M-v problem.

I could reproduce the Option-n case and I think the following patch
will fix it.  But the patch fixes a problem with dead-key processing,
and I have no idea about the Option-v case.  Is it possible for the OP
to try to reproduce it with "a Carbon build straight from GNU Emacs
CVS" (with setting mac-option-modifier to meta)?

                                     YAMAMOTO Mitsuharu
                                address@hidden

*** emacs/src/macterm.c.~1.214.~        Fri Apr 13 17:14:46 2007
--- emacs/src/macterm.c Sat May 12 19:23:49 2007
*************** static Boolean mac_convert_event_ref (Ev
*** 9201,9206 ****
--- 9201,9207 ----
        switch (GetEventKind (eventRef))
        {
        case kEventRawKeyDown:
+       case kEventRawKeyRepeat:
          {
            unsigned char char_codes;
            UInt32 key_code;
*************** static Boolean mac_convert_event_ref (Ev
*** 9214,9220 ****
                                       NULL, &key_code);
            if (err == noErr)
              {
!               eventRec->what = keyDown;
                eventRec->message = char_codes | ((key_code & 0xff) << 8);
                result = 1;
              }
--- 9215,9224 ----
                                       NULL, &key_code);
            if (err == noErr)
              {
!               if (GetEventKind (eventRef) == kEventRawKeyDown)
!                 eventRec->what = keyDown;
!               else
!                 eventRec->what = autoKey;
                eventRec->message = char_codes | ((key_code & 0xff) << 8);
                result = 1;
              }

reply via email to

[Prev in Thread] Current Thread [Next in Thread]