GNU bug report logs - #44448
27.1; Strange inteference between timer, modeline/header-line and buffer position in window

Previous Next

Package: emacs;

Reported by: Amai Kinono <amaikinono <at> gmail.com>

Date: Wed, 4 Nov 2020 16:53:01 UTC

Severity: normal

Found in version 27.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


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

From: Eli Zaretskii <eliz <at> gnu.org>
To: amaikinono <at> gmail.com
Cc: 44448 <at> debbugs.gnu.org
Subject: Re: bug#44448: Fwd: bug#44448:
Date: Thu, 12 Aug 2021 17:07:06 +0300
> Date: Thu, 12 Aug 2021 15:44:34 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
> Cc: 44448 <at> debbugs.gnu.org
> 
> Thanks.  I see the cause of it: it's the :eval forms that we execute
> when we redisplay the mode line, as part of redisplaying a window.
> When more than one window displays the same buffer at different buffer
> positions, when Emacs redisplays a non-selected window, it temporarily
> moves point to the place where it is displayed in that non-selected
> window.  If C-g is processed while those :eval forms run, with the
> buffer's point temporarily moved, you will see point in the selected
> window "inherit" the position of point from the other window showing
> the same buffer.  As evidence, after this happens, you should be able
> to see this in *Messages*:
> 
>   Error during redisplay: (mode-line-default-help-echo #<window 3 on paren.el>) signaled (quit)

Actually, that cannot be the whole story.  Because evaluating the
:eval forms in the mode line arranges for catching the errors (and the
above text in *Messages* is the evidence that it works here), and so
we should have still run redisplay_window to completion after that,
which includes restoring the buffer's point to its original value.
Hmm...




This bug report was last modified 3 years and 229 days ago.

Previous Next


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