GNU bug report logs - #77039
31.0.50; Flickering on macOS

Previous Next

Package: emacs;

Reported by: Aaron Jensen <aaronjensen <at> gmail.com>

Date: Sat, 15 Mar 2025 16:43:01 UTC

Severity: normal

Found in version 31.0.50

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

Bug is archived. No further changes may be made.

Full log


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

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Aaron Jensen <aaronjensen <at> gmail.com>
Cc: Alan Third <alan <at> idiocy.org>, 77039 <at> debbugs.gnu.org
Subject: Re: bug#77039: 31.0.50; Flickering on macOS
Date: Sun, 16 Mar 2025 20:25:59 +0100
[Message part 1 (text/plain, inline)]
Aaron Jensen <aaronjensen <at> gmail.com> writes:

> Hi,
>
> I've narrowed it down to the addition to frame in the glyph
> comparison. As far as I can tell, the attached patch removes the
> flickering for me. I saw the cursor blink once, but I couldn't
> reproduce that and I couldn't get it to do it again.
>
> The patch is not suitable for applying to master as it certainly
> breaks something int he tty child frame code, but hopefully it gives
> you an idea of what the problem might be. I'm going to experiment with
> accounting for the NULL frame in the space glyph and see if that
> helps.

Thanks Aaron, that was very helpful. I'm pretty sure it gave me right
idea, namely... This in adjust_glyph_matrix

dispnew.c:
  505           while (row < end)
  506             {
  507               row->glyphs[LEFT_MARGIN_AREA] =
  508                 xnrealloc (row->glyphs[LEFT_MARGIN_AREA],
  509                            dim.width, sizeof (struct glyph));

means that glyphs in window-system windows are not zeroed. Which in turn
means that glyph::frame is not guaranteed to be NULL initially. And
because I falsely assumed that to be the case, I didn't change the code
producing glyphs for window-systems to set glyph::frame, which isn't
needed or used on window-systems. And in the end, the glyph comparisons
can fail.

Or so is the hypothesis...

Could you please try if the attached change works for you (without your
patch)?

[adjust.diff (text/x-patch, attachment)]

This bug report was last modified 113 days ago.

Previous Next


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