* keyboard.c (read_key_sequence): Treat mouse clicks on non-text
authorJim Blandy <jimb@redhat.com>
Sat, 3 Oct 1992 15:37:35 +0000 (15:37 +0000)
committerJim Blandy <jimb@redhat.com>
Sat, 3 Oct 1992 15:37:35 +0000 (15:37 +0000)
commit0a7f1fc0b510f3f7a220e8702b71563d909d7a7d
treeb3da50e4fa96e7a10df393865025f68b51ee7fdd
parent20d2471455526acfd5fe96681ea31f0eac88fae4
* keyboard.c (read_key_sequence): Treat mouse clicks on non-text
areas as if they were prefixed with the symbol denoting the
area clicked on - `mode-line', etcetera.
When we throw away an unbound `down-' event, reset mock_input as
well.

* keyboard.c (Qevent_symbol_element_mask, Qmodifier_cache): Two
new symbols, used to implement caches on event heads.  These take
the place of some of the caching that modify_event_symbol used to do.
(parse_modifiers_uncached, apply_modifiers_uncached,
lispy_modifier_list, parse_modifiers, apply_modifiers): New
functions, which replace format_modifiers and reorder_modifiers;
they can be useful elsewhere too.
(reorder_modifiers, modify_event_symbol): Re-implement these in
terms of parse_modifiers and apply_modifiers.  modify_event_symbol
now uses a much simpler cache, and takes advantage of the caches
maintained by parse_ and apply_modifiers.
(follow_key): Don't modify NEXT if KEY has no bindings.
(read_key_sequence): Drop unbound `down-' events, and turn unbound
`drag-' events into clicks if that would make them bound.  This
benefits from the rewriting of the modifier key handling code.
(syms_of_keyboard): Initialize and intern
Qevent_symbol_element_mask and Qmodifier_cache.

* keyboard.c (echo_prompt): Terminate the echo buffer properly
even when the string is too long to display in the minibuffer.
(echo_truncate): Just return echoptr - echobuf, rather than
calling strlen on echobuf.

* keyboard.c (modifier_names): The modifier is named "control",
not "ctrl".
src/keyboard.c