GNU bug report logs - #64596
30.0.50; On FIXME: in src/buffer.c:1481 (force-mode-line-update)

Previous Next

Package: emacs;

Reported by: Ihor Radchenko <yantar92 <at> posteo.net>

Date: Thu, 13 Jul 2023 13:01:02 UTC

Severity: normal

Found in version 30.0.50

Full log


Message #122 received at 64596 <at> debbugs.gnu.org (full text, mbox):

From: Ihor Radchenko <yantar92 <at> posteo.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: monnier <at> iro.umontreal.ca, 64596 <at> debbugs.gnu.org
Subject: Re: bug#64596: 30.0.50; On FIXME: in src/buffer.c:1481
 (force-mode-line-update)
Date: Sun, 16 Jul 2023 05:49:45 +0000
Eli Zaretskii <eliz <at> gnu.org> writes:

>> At least, when the current buffer is only displayed in a single,
>> selected window, checking every window should not be necessary.
>
> The code which sets update_mode_lines doesn't know whether the current
> buffer will be displayed in a single window by the time redisplay
> kicks in.  It doesn't even know whether it will still be the current
> buffer by that time.  Because the Lisp program that is running and
> making the changes which cause update_mode_lines to be set can change
> these things before it finishes.

If the selected window changes for any reason, redisplaying the
previously selected window will be queued by select_window:

  if (NILP (norecord) || EQ (norecord, Qmark_for_redisplay))
    { /* Mark the window for redisplay since the selected-window has
	 a different mode-line.  */
      wset_redisplay (XWINDOW (selected_window)); 
      wset_redisplay (w);
    }
  else
    redisplay_other_windows ();

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>




This bug report was last modified 1 year and 328 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.