Subject: Re: bug#6192: 24.0.50; eldoc-mode: unexpected recentering

From: Eli Zaretskii <[email-masked]>
Date: Sat, 15 May 2010 19:44:38 +0300

> From: Stephen Berman <[email-masked]>
> Cc: [email-masked]
> Date: Sat, 15 May 2010 17:40:02 +0200
> 
> > When that happens, do you see any message in *Messages* besides the
> > one displayed in the echo area?
> 
> Nothing in *Messages* (not even the Eldoc message -- it is deliberately
> suppressed by eldoc-message).

Can you hack eldoc to un-suppress that, and then see?

> > In general, a single-line message should not resize the echo area.  If
> > the echo area is resized, then recentering you describe is a normal
> > reaction of the display engine.  So the question now is why the echo
> > area is enlarged to 2 lines.
> 
> I don't know, but I stepped through eldoc.el with Edebug and when it got
> to the point where the message is put into the echo area, this is what
> it showed:
> 
> Result: #("let: (VARLIST BODY...)" 0 3 (face font-lock-function-name-face) 14 21 (face eldoc-highlight-function-argument))
> 
> This string made the echo area expand to two lines, but in normal
> (non-edebug) execution it of course shows up just as "let: (VARLIST
> BODY...)" (with fontification).  So if the propertized string is the
> source of the expanded echo area

No, that cannot be it.  The properties should be completely evaluated
and converted to appropriate faces, by the time the message is
displayed.  What gets displayed is just "let: (VARLIST BODY...)", and
unless you have some strange fonts installed, I don't see how this can
require more than one line of the echo area.

> the question becomes why it does not shrink again.

Once expanded, Emacs shrinks the echo area lazily (see the value of
resize-mini-windows).  So this is normal.

We should concentrate on why the echo area is expanded.