Commit 0a7f1fc0 authored by Jim Blandy's avatar Jim Blandy

* 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".
parent 20d24714
This diff is collapsed.
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