GNU bug report logs -
#21869
Redisplay: after echo area diminishes in size, Follow Mode windows aren't resynchronised.
Previous Next
Reported by: Alan Mackenzie <acm <at> muc.de>
Date: Mon, 9 Nov 2015 09:35:01 UTC
Severity: normal
Merged with 830,
21333
Found in versions 24.0.90, 25.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #31 received at 21869 <at> debbugs.gnu.org (full text, mbox):
Hello, Eli.
On Mon, Nov 09, 2015 at 10:50:57PM +0200, Eli Zaretskii wrote:
> > Date: Mon, 9 Nov 2015 19:42:00 +0000
> > From: Alan Mackenzie <acm <at> muc.de>
> > Cc: 21869 <at> debbugs.gnu.org, Pip Cet <pipcet <at> gmail.com>
> > > Probably bug#830 and bug#21333.
> > > Pip are you still alive? Have your papers arrived?
Quick summary of the bug: with Follow Mode active, with a multi-line
display in the echo area, do C-f. The echo area resizes to one line,
but the Follow Mode windows don't get resynchronised.
Quick summary of the cause: redisplay_internal calls prepare_menu_bars
(which invokes the window-size-change-functions hook) before it calls
echo_area_display (which resizes the echo area). Thus changes to the
echo area size aren't yet in place when window-size-change-functions is
invoked.
> We had a patch in bug #21333 which was discussed and tested at
> length. Please see if it works for your use case as well. If not,
> please tell why not.
As I said last week, this patch didn't work, for the reasons outlined
above.
I propose the following strategy to fix the bug:
1. Call resize_mini_window from redisplay_internaal before the call to
prepare_menu_bars.
2. Remove the call to resize_mini_window from display_echo_area_1, and
make that function of type void.
3. Change the contract of echo_area_display, such that the echo area
must have been set to the correct height before calling it.
4. Adapt message3_nolog (the only other function which calls
echo_area_display) to call resize_mini_window.
As a result of these changes, any change in the size of the echo area
would be taken into account when invoking window-size-change-functions.
An advantage of this change is that a recursive invocation of
redisplay_internal inside echo_area_display could be removed, improving
performance.
If it would help, I could post an analysis to support the soundness of
the above strategy.
What do you think?
> Thanks.
--
Alan Mackenzie (Nuremberg, Germany).
This bug report was last modified 9 years and 180 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.