diff options
author | Steven Tamm <steventamm@mac.com> | 2002-12-22 21:09:20 +0000 |
---|---|---|
committer | Steven Tamm <steventamm@mac.com> | 2002-12-22 21:09:20 +0000 |
commit | 402e4f8bd4bd37ba1eb1f3c30b44c0e5e95dcd9d (patch) | |
tree | c5a89d3280f29c418f9a4ccd4230dbf782c54073 /src/macterm.c | |
parent | 58e104693b67370abe79eb940e7450575dd386dc (diff) | |
download | emacs-402e4f8bd4bd37ba1eb1f3c30b44c0e5e95dcd9d.tar.gz |
* macterm.c (XTread_socket): Call KeyTranslate for control and
meta to deal correctly shifted non-alpha characters, like C-S-5
being treated like C-%. Does not look for shift key to deal
with masking off control-key with mac-reverse-ctrl-meta.
Diffstat (limited to 'src/macterm.c')
-rw-r--r-- | src/macterm.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/src/macterm.c b/src/macterm.c index d2299524362..0e97e6bbb30 100644 --- a/src/macterm.c +++ b/src/macterm.c @@ -12931,26 +12931,19 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) bufp->code = 0xff00 | xkeysym; bufp->kind = NON_ASCII_KEYSTROKE_EVENT; } - else if (!NILP (Vmac_reverse_ctrl_meta) && (er.modifiers & controlKey)) - { - /* This is a special case to deal with converting from - a control character to non-control character */ - int new_modifiers = er.modifiers & ~controlKey; - int new_keycode = keycode | new_modifiers; - Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache); - unsigned long some_state = 0; - bufp->code = KeyTranslate (kchr_ptr, new_keycode, &some_state) & 0xff; - bufp->kind = ASCII_KEYSTROKE_EVENT; - } else { - if (er.modifiers & macMetaKey) + if (er.modifiers & (controlKey | + (NILP (Vmac_command_key_is_meta) ? optionKey + : cmdKey))) { /* This code comes from Keyboard Resource, Appendix C of IM - Text. This is necessary since shift is ignored in KCHR table translation when option or - command is pressed. */ - int new_modifiers = er.modifiers & 0xf600; + command is pressed. It also does not translate + correctly control-shift chars like C-% so mask off + shift here also */ + int new_modifiers = er.modifiers & 0xe600; /* mask off option and command */ int new_keycode = keycode | new_modifiers; Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache); |