• Jim Blandy's avatar
    * keyboard.c (read_key_sequence): Treat mouse clicks on non-text · 0a7f1fc0
    Jim Blandy authored
    	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
    	* 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".
keyboard.c 109 KB