Subject: bug#29349: [Patch] Bug 29349: read_key_sequence is only partially recursive. This is a bug.

From: Eli Zaretskii <[email-masked]>
Date: Mon, 20 Nov 2017 05:33:28 +0200

> Date: Sun, 19 Nov 2017 20:41:21 +0000
> Cc: [email-masked]
> From: Alan Mackenzie <[email-masked]>
> 
> > > With the patch applied, the C-down-mouse-3 survives in the raw key
> > > buffer, enabling `describe-key-briefly' to do the Right Thing.  It does
> > > this by collecting the menu processing's mouse events in a separate
> > > buffer, then copying that buffer to the main one afterwards.
> 
> > OK, but then (a) please install the patch on master, not on the
> > release branch, ....
> 
> I'll do that, but probably not tonight.
> 
> > .... and (b) why do we need the followup patch -- with the mouse-1
> > events injected into the sequence the "translation" looks correct and
> > even educational.
> 
> I don't think it looks correct.  The C-down-mouse-3 which exists as an
> essential part of the key sequence has been overwritten in the
> "translation".

That's not what I see here, with your patch applied in keyboard.c,  I
see this:

  <C-down-mouse-3> <indent-pp-sexp> (translated from <C-down-mouse-3>
  <mouse-1> <indent-pp-sexp>) at that spot runs the command
  indent-pp-sexp (found in global-map), which is an interactive compiled
  Lisp function in `lisp-mode.el'.

So C-down-mouse-3 is still there, we just have each click in the menus
injected into the sequence.  What did you see after applying that
patch.

> The other thing is that if mouse-movements get into the raw event buffer
> (which I've seen, but for some reason amn't seeing any more) the
> "translated from" could become objectionably long.

I don't see that as a problem.

> I think the "translated from" bit is intended to document a sequence the
> user is aware of (such as a double click) being translated into a
> different sequence she's aware of (such as a single click).

And that's exactly what happens in this case.

> The mouse-1, I believe, is more part of the user's subconsciousness
> rather than awareness.

But those mouse-1 clicks are real.