Commit 402e4f8b authored by Steven Tamm's avatar Steven Tamm
Browse files

* 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.
parent 58e10469
2002-12-22 Steven Tamm <steventamm@mac.com>
* 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.
2002-12-21 Richard M. Stallman <rms@gnu.org> 2002-12-21 Richard M. Stallman <rms@gnu.org>
* xmenu.c (popup_get_selection): Now static. New arg DO_TIMERS. * xmenu.c (popup_get_selection): Now static. New arg DO_TIMERS.
......
...@@ -12931,26 +12931,19 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) ...@@ -12931,26 +12931,19 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected)
bufp->code = 0xff00 | xkeysym; bufp->code = 0xff00 | xkeysym;
bufp->kind = NON_ASCII_KEYSTROKE_EVENT; 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 else
{ {
if (er.modifiers & macMetaKey) if (er.modifiers & (controlKey |
(NILP (Vmac_command_key_is_meta) ? optionKey
: cmdKey)))
{ {
/* This code comes from Keyboard Resource, Appendix /* This code comes from Keyboard Resource, Appendix
C of IM - Text. This is necessary since shift is C of IM - Text. This is necessary since shift is
ignored in KCHR table translation when option or ignored in KCHR table translation when option or
command is pressed. */ command is pressed. It also does not translate
int new_modifiers = er.modifiers & 0xf600; correctly control-shift chars like C-% so mask off
shift here also */
int new_modifiers = er.modifiers & 0xe600;
/* mask off option and command */ /* mask off option and command */
int new_keycode = keycode | new_modifiers; int new_keycode = keycode | new_modifiers;
Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache); Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment