Subject: Re: bug#46155: 28.0.50; Regression: buffer contents flicker on macOS frames when

From: Aaron Jensen <[email-masked]>
Date: Sun, 31 Jan 2021 16:05:53 -0600

On Sun, Jan 31, 2021 at 2:28 PM Alan Third <[email-masked]> wrote:
>
> On Thu, Jan 28, 2021 at 04:39:49PM +0000, Alan Third wrote:
> > On Thu, Jan 28, 2021 at 09:48:25AM -0600, Aaron Jensen wrote:
> > > From emacs -Q:
> > >
> > > (dotimes (n 10)
> > >   (set-frame-parameter nil 'width (+ 80 n))
> > >   (sit-for 0.1))
> > >
> > > This was previously fixed in bug#30699
> > >
> > > I don't know if it was reverted at some point and I didn't notice, or it
> > > was started flickering again after Alan's recent (fantastic) performance
> > > improvements.
> > >
> > > This reproduces on master (non-native-comp) as of ac102bb966 as well.
> >
> > Apple deprecated the functions we were using to block screen drawing.
> >
> > It's possible we can have a neater work-around now since we're drawing
> > to an offscreen buffer and therefore have greater control over what's
> > displayed. I'll have to look into it again.
>
> Well... I tried something ridiculous and it appears to work...
>
> I suspect forcing redisplay this way within the NS run loop is bad
> form, but it appears to work.

Awesome, it works for me. It also fixes an issue I've had when
launching Emacs and resizing it and it remaining blank for an extended
period of time (probably while it's busy, but it's still rather
unsightly)

I'll give it a shot for a while and report back.