diff options
| author | Jim Blandy <jimb@redhat.com> | 1993-05-04 02:32:22 +0000 |
|---|---|---|
| committer | Jim Blandy <jimb@redhat.com> | 1993-05-04 02:32:22 +0000 |
| commit | 806451194be01bc8712d9f43793b3f6ec8c5458e (patch) | |
| tree | de0ada0d82e535bf71e05020d18b1a8a8e4e353b /src/keymap.c | |
| parent | 9083124bb71c9db86e7ab2338b0aeb0dbbbb9a45 (diff) | |
| download | emacs-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
