From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: How can I force updating mini window's header line when mode line is updated? Date: Wed, 25 Apr 2018 12:20:44 -0400 Message-ID: References: <87in8fqx0a.fsf@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1524673157 10477 195.159.176.226 (25 Apr 2018 16:19:17 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 25 Apr 2018 16:19:17 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Apr 25 18:19:13 2018 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fBN8S-0002bi-Hc for geh-help-gnu-emacs@m.gmane.org; Wed, 25 Apr 2018 18:19:12 +0200 Original-Received: from localhost ([::1]:38034 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBNAZ-0003fd-B1 for geh-help-gnu-emacs@m.gmane.org; Wed, 25 Apr 2018 12:21:23 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42679) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBNA9-0003fV-Br for help-gnu-emacs@gnu.org; Wed, 25 Apr 2018 12:20:58 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fBNA6-0005x3-8g for help-gnu-emacs@gnu.org; Wed, 25 Apr 2018 12:20:57 -0400 Original-Received: from [195.159.176.226] (port=44074 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fBNA5-0005vf-Vz for help-gnu-emacs@gnu.org; Wed, 25 Apr 2018 12:20:54 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1fBN7v-0001uW-Om for help-gnu-emacs@gnu.org; Wed, 25 Apr 2018 18:18:39 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 35 Original-X-Complaints-To: usenet@blaine.gmane.org Cancel-Lock: sha1:r5jiA2iNsUC9Y9d1697r8t4UZnM= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:116597 Archived-At: > 3. (setq-default header-line-format mode-line-format) Hmm... this would put a header-line on all windows, whereas IIUC you want a header-line only for the mini-window, right? > However the header line doesn't get updated at all. A window's header-line (and mode-line) will normally only be updated if something happens in this window that would require updating it. Part of this detection of when update is needed is automatic, tho not all of it (so Elisp code sometimes has to call force-mode-line-update). In your case, the header-line belongs to the mini-window, so this detection (and most of existing Elisp code calling force-mode-line-update) won't help because it will only detect a need for update when the *mini-window* is affected, whereas you most likely want to update it in many other cases. So you'll probably want to add some `post-command-hook` (and/or other related hooks) to try and detect when an update is needed, at which point you'll need to do (with-current-buffer (force-mode-line-update)) > It seems xdisp.c only > provides ways to update mode line, and I've reached the limit of my > emacs-fu. How can I achieve this without hacking tons of the display logic? AFAIK the redisplay doesn't really distinguish the mode-line from the header-line in this respect (e.g. force-mode-line-update will cause both the mode-line and the header-line to be refreshed). Stefan