mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-27 07:37:33 +00:00
* 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.
This commit is contained in:
parent
58e104693b
commit
402e4f8bd4
@ -1,3 +1,10 @@
|
||||
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>
|
||||
|
||||
* 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)
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user