GNU bug report logs - #11041
23.4; Shifted keystrokes are not passed into OS X Input Manager correctly

Previous Next

Package: emacs;

Reported by: Yong-Gang Wang <wixette <at> gmail.com>

Date: Sun, 18 Mar 2012 19:40:02 UTC

Severity: normal

Tags: fixed

Found in version 23.4

Fixed in version 26.0

Done: Alan Third <alan <at> idiocy.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Yong-Gang Wang <wixette <at> gmail.com>
To: 11041 <at> debbugs.gnu.org
Subject: bug#11041: 23.4; Shifted keystrokes are not passed into OS X Input Manager correctly
Date: Sun, 18 Mar 2012 12:23:23 +0800
[Message part 1 (text/plain, inline)]
In GNU Emacs 23.4.1 (x86_64-apple-darwin, NS apple-appkit-1038.36)
 of 2012-01-29 on bob.porkrind.org

Repro: On Mac OS X, turns a CJK input method on, e.g. Chinese Pinyin Input
Method, then types shifted characters like ":", "?", "<" or ">" in GNU
Emacs OS X 23.4.1.
Expected results: Chinese fullwidth punctuations are input, like ":", "?",
"《" or "》".
Actual results: English halfwidth punctuations are input, ":", "?", "<" or
">".

Debug and Code location:

See src/nsterm.m line 4490-4492, the current logic is, when there are
modifier keys, including SHIFT, being pressed down, the key code won't be
sent to OS X Input Manager for composing the input method result. This
logic is NOT true for shifted keystrokes. Actually, shifted keystrokes
like ":", "?", "<" or ">" are still display characters and should be sent
into the Input Manager for composing.

      /* if it was a function key or had modifiers, pass it directly to
emacs */
      if (fnKeysym || (emacs_event->modifiers
                       && [[theEvent charactersIgnoringModifiers] length] >
0))

A workable fix:

      /* if it was a function key or had modifiers(except for shift only
modifier), pass it directly to emacs */
      if (fnKeysym || (emacs_event->modifiers
                       && emacs_event->modifiers != shift_modifier
                       && [[theEvent charactersIgnoringModifiers] length] >
0))

Thanks,


-- 
Yong-Gang Wang 王咏刚
[Message part 2 (text/html, inline)]

This bug report was last modified 7 years and 180 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.