GNU bug report logs -
#38181
Actual height of mode-line not taken into account
Previous Next
Reported by: Jonas Bernoulli <jonas <at> bernoul.li>
Date: Tue, 12 Nov 2019 16:54:01 UTC
Severity: normal
Fixed in version 29.1
Done: martin rudalics <rudalics <at> gmx.at>
Bug is archived. No further changes may be made.
Full log
Message #65 received at 38181 <at> debbugs.gnu.org (full text, mbox):
> Cc: jonas <at> bernoul.li, 38181 <at> debbugs.gnu.org
> From: martin rudalics <rudalics <at> gmx.at>
> Date: Sat, 16 Nov 2019 20:28:10 +0100
>
> > What are the frequent calls? Help and completions windows come to
> > mind, but those are interactive, and so I'm not sure I see why calling
> > redisplay would be a bad idea there. Are there other callers which
> > I'm missing?
>
> The functions for displaying temporary buffers when
> 'temp-buffer-resize-mode' is on. I do not think that the overhead for
> calculating the mode line height is excessive. It's just that IIUC
> even Jonas changes the mode line height only once per window/buffer
> assignment so even for him this overhead is practically always lost.
But I thought we'd established that mode-line height calculation is
not the culprit, the culprit is the fact that a window's height is not
recomputed when the mode-line height changes. Did I misunderstand?
> >> Right. But that same program could also redisplay all windows in
> >> these cases, right?
> >
> > I meant that calling redisplay should do this automatically.
>
> By calculating the mode line before drawing the scroll bars?
No, by triggering redrawing of scroll bars when we detect that the
mode line changed its height. In this place of redisplay_window:
display_mode_lines (w);
/* If mode line height has changed, arrange for a thorough
immediate redisplay using the correct mode line height. */
if (window_wants_mode_line (w)
&& CURRENT_MODE_LINE_HEIGHT (w) != DESIRED_MODE_LINE_HEIGHT (w))
{
f->fonts_changed = true;
w->mode_line_height = -1;
MATRIX_MODE_LINE_ROW (w->current_matrix)->height
= DESIRED_MODE_LINE_HEIGHT (w);
}
Or maybe in redisplay_internal, when we see that f->fonts_changed is
set.
This bug report was last modified 3 years and 201 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.