summaryrefslogtreecommitdiff
path: root/src/keymap.c
diff options
context:
space:
mode:
authorJim Blandy <jimb@redhat.com>1993-05-04 02:32:22 +0000
committerJim Blandy <jimb@redhat.com>1993-05-04 02:32:22 +0000
commit806451194be01bc8712d9f43793b3f6ec8c5458e (patch)
treede0ada0d82e535bf71e05020d18b1a8a8e4e353b /src/keymap.c
parent9083124bb71c9db86e7ab2338b0aeb0dbbbb9a45 (diff)
downloademacs-806451194be01bc8712d9f43793b3f6ec8c5458e.tar.gz
Implement extra_keyboard_modifiers properly.
* keyboard.c (syms_of_keyboard): Doc fix for extra-keyboard-modifiers; use the same modifier bits as we do for characters. (read_char): Apply all the modifiers in extra_keyboard_modifiers to the input characters, so you can get hyper, super, and the rest of the gang. * xterm.c (x_emacs_to_x_modifiers): New function. (x_convert_modifiers): Renamed to x_x_to_emacs_modifiers, for consistency. Callers changed. (XTread_socket): Apply x_emacs_to_x_modifiers to extra_keyboard_modifiers before setting the state member of the event; this will get all the modifiers on ASCII characters. * keyboard.c (kbd_buffer_get_event): Don't generate switch-frame events if they'd only switch to the frame already selected. This avoids lots of extra switch-frame events when using a separate minibuffer. * keyboard.c (Fcurrent_input_mode): New function. * keyboard.c (read_key_sequence): Let the `modifiers' variable in the code which deals with KEY being unbound be an int, not a Lisp_Object. Make the modifier manipulation functions more robust. The old way caused a bug once, and probably would again. * termhooks.h (alt_modifier, super_modifier, hyper_modifier, shift_modifier, ctrl_modifier, meta_modifier): Shift these all down one bit in value, to avoid sign extension problems. * lisp.h (CHAR_META, CHAR_CTL, CHAR_SHIFT): Fix these definitions too. * keyboard.c (lispy_modifier_list): Ignore modifier bits beyond what our table of modifier names can handle. (apply_modifiers): Don't abort if you see extra modifier bits, just remove them.
Diffstat (limited to 'src/keymap.c')
0 files changed, 0 insertions, 0 deletions