GNU bug report logs - #78861
[PATCH] Avoid calendar flicker

Previous Next

Package: emacs;

Reported by: Manuel Giraud <manuel <at> ledu-giraud.fr>

Date: Sun, 22 Jun 2025 07:01:01 UTC

Severity: normal

Tags: patch

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

Bug is archived. No further changes may be made.

Full log


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

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 78861 <at> debbugs.gnu.org
Subject: Re: bug#78861: [PATCH] Avoid calendar flicker
Date: Mon, 23 Jun 2025 09:50:23 +0200
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
>> Cc: 78861 <at> debbugs.gnu.org
>> Date: Sun, 22 Jun 2025 18:22:15 +0200
>> 
>> Eli Zaretskii <eliz <at> gnu.org> writes:
>> 
>> >> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
>> >> Cc: 78861 <at> debbugs.gnu.org
>> >> Date: Sun, 22 Jun 2025 16:08:37 +0200
>> >> 
>> >> Eli Zaretskii <eliz <at> gnu.org> writes:
>> >> 
>> >> > If the above is the best scenario you can offer, then please point me
>> >> > to the code in calendar that first draws the numbers in black and then
>> >> > redraws them in red, and I will take a look.
>> >> 
>> >> Thanks Eli.  I think most takes place in `diary-mark-entries' at
>> >> diary-lib.el:1377.
>> >
>> > Thanks.  Then I guess the problem is the calls to sit-for, which
>> > performs redisplay, in calendar-generate-window before it calls
>> > diary-mark-entries.  Any idea why we are calling sit-for there?  If
>> > you remove those calls or add the optional second argument non-nil to
>> > them, does the problem go away?
>> 
>> Thanks.  I have commented both sit-for and the issue completely goes
>> away.  I dig into history and those sit-for are here from ecaa0527104b
>> (the initial revision in 1992!)
>
> Can you (or anyone else) think of any reasons to have these sit-for
> calls there?  For example, when there's no need to call
> diary-mark-entries at all?

Both sit-for are guarded behind a `in-calendar-window' meaning that the
window-buffer is the calendar buffer.  So maybe the explanation for
those sit-for was to have some interactive visual feed back when
activating marks of diary entries.  But now that we could end up calling
`dairy-mark-entries' when we scroll this just creates too much flicker,
IMO.

> If we can think of no valid reason, I think TRT is simply to remove
> these calls.  It's possible that this was there for when Emacs had a
> completely different way of fontifying buffers than what we have now.

Here is an updated patch that removes those sit-for.
[0001-Avoid-flicker-when-marking-diary-entries-bug-78861.patch (text/x-patch, attachment)]
[Message part 3 (text/plain, inline)]
-- 
Manuel Giraud

This bug report was last modified 19 days ago.

Previous Next


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