GNU bug report logs -
#11041
23.4; Shifted keystrokes are not passed into OS X Input Manager correctly
Previous Next
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
[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.