GNU bug report logs -
#30955
27.0.50; Mouse clicks on header-line in Info are broken
Previous Next
Reported by: Eli Zaretskii <eliz <at> gnu.org>
Date: Mon, 26 Mar 2018 14:55:01 UTC
Severity: normal
Found in version 27.0.50
Done: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
>>>>> Stefan Monnier <monnier <at> IRO.UMontreal.CA> writes:
>> Stefan "not looking forward to debug sessions in
>> read_key_sequence"
> Ha, I found the sucker! Installed,
> Stefan
> --- a/src/keyboard.c +++ b/src/keyboard.c @@ -8701,10 +8701,19 @@
> follow_key (Lisp_Object keymap, Lisp_Object key) }
> static Lisp_Object -active_maps (Lisp_Object first_event)
> +active_maps (Lisp_Object first_event, Lisp_Object second_event) {
> Lisp_Object position - = CONSP (first_event) ? CAR_SAFE (XCDR
> (first_event)) : Qnil; + = EVENT_HAS_PARAMETERS (first_event) ?
> EVENT_START (first_event) : Qnil; + /* The position of a click can
> be in the second event if the first event + is a pseudo-event like
> `header-line` or `mode-line`. */ + if (SYMBOLP (first_event) + &&
> EVENT_HAS_PARAMETERS (second_event) + && EQ (first_event,
> POSN_POSN (EVENT_START (second_event)))) + { + eassert (NILP
> (position)); + position = EVENT_START (second_event); + } return
> Fcons (Qkeymap, Fcurrent_active_maps (Qt, position)); }
> @@ -9016,13 +9025,14 @@ read_key_sequence (Lisp_Object *keybuf,
> int bufsize, Lisp_Object prompt, starting_buffer = current_buffer;
> first_unbound = bufsize + 1; Lisp_Object first_event = mock_input
> > 0 ? keybuf[0] : Qnil; + Lisp_Object second_event = mock_input >
> 1 ? keybuf[1] : Qnil;
> /* Build our list of keymaps. If we recognize a function key
> and replace its escape sequence in keybuf with its symbol, or if
> the sequence starts with a mouse click and we need to switch
> buffers, we jump back here to rebuild the initial keymaps from the
> current buffer. */ - current_binding = active_maps (first_event);
> + current_binding = active_maps (first_event, second_event);
> /* Start from the beginning in keybuf. */ t = 0; @@ -9282,7
> +9292,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize,
> Lisp_Object prompt, && (XBUFFER (XWINDOW
> (selected_window)->contents) != current_buffer)) Fset_buffer
> (XWINDOW (selected_window)->contents); - current_binding =
> active_maps (first_event); + current_binding = active_maps
> (first_event, Qnil); }
> GROW_RAW_KEYBUF;
Yes, that's fixed the issue for me - mouse now works normally. Thank
you.
Best wishes,
Colin.
This bug report was last modified 7 years and 135 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.