From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#38181: Actual height of mode-line not taken into account Date: Sat, 16 Nov 2019 21:44:24 +0200 Message-ID: <8336en7giv.fsf@gnu.org> References: <87eeyd3ul0.fsf@bernoul.li> <83d0dt2qt6.fsf@gnu.org> <83r2290w24.fsf@gnu.org> <83pnhs6wwp.fsf@gnu.org> <83k1806qca.fsf@gnu.org> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="244304"; mail-complaints-to="usenet@blaine.gmane.org" Cc: jonas@bernoul.li, 38181@debbugs.gnu.org To: martin rudalics Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Nov 16 20:45:14 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iW40P-0011Lq-Ui for geb-bug-gnu-emacs@m.gmane.org; Sat, 16 Nov 2019 20:45:14 +0100 Original-Received: from localhost ([::1]:49824 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iW40O-0007k2-9A for geb-bug-gnu-emacs@m.gmane.org; Sat, 16 Nov 2019 14:45:12 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48079) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iW40I-0007jL-GH for bug-gnu-emacs@gnu.org; Sat, 16 Nov 2019 14:45:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iW40H-0003ct-Ev for bug-gnu-emacs@gnu.org; Sat, 16 Nov 2019 14:45:06 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:59147) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iW40H-0003cd-Bd for bug-gnu-emacs@gnu.org; Sat, 16 Nov 2019 14:45:05 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iW40E-0003jg-B2 for bug-gnu-emacs@gnu.org; Sat, 16 Nov 2019 14:45:05 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Nov 2019 19:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 38181 X-GNU-PR-Package: emacs Original-Received: via spool by 38181-submit@debbugs.gnu.org id=B38181.157393347414305 (code B ref 38181); Sat, 16 Nov 2019 19:45:02 +0000 Original-Received: (at 38181) by debbugs.gnu.org; 16 Nov 2019 19:44:34 +0000 Original-Received: from localhost ([127.0.0.1]:39735 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iW3zl-0003if-Vh for submit@debbugs.gnu.org; Sat, 16 Nov 2019 14:44:34 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:38952) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iW3zk-0003iQ-7w for 38181@debbugs.gnu.org; Sat, 16 Nov 2019 14:44:32 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:52401) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1iW3ze-0003Fx-Di; Sat, 16 Nov 2019 14:44:26 -0500 Original-Received: from [176.228.60.248] (port=1204 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1iW3zd-0003Qm-Gj; Sat, 16 Nov 2019 14:44:26 -0500 In-reply-to: (message from martin rudalics on Sat, 16 Nov 2019 20:28:10 +0100) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:171736 Archived-At: > Cc: jonas@bernoul.li, 38181@debbugs.gnu.org > From: martin rudalics > 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.