Subject: Re: bug#30699: 26.0.91; buffer contents flicker on macOS frames when frames are resized

From: Alan Third <[email-masked]>
Date: Tue, 13 Mar 2018 12:19:04 +0000

On Mon, Mar 12, 2018 at 11:42:39PM +0000, Alan Third wrote:
> So would it be acceptable to just call redisplay after the resize?
> 
> modified   src/nsterm.m
> @@ -7007,6 +7007,7 @@ - (void) updateFrameSize: (BOOL) delay
>           to be a noop.  (bug#28872) */
>        wr = NSMakeRect (0, 0, neww, newh);
>        [view setFrame: wr];
> +      redisplay ();
>  
>        // to do: consider using [NSNotificationCenter postNotificationName:].
>        [self windowDidMove: // Update top/left.

Nah, forget it. I tried it and found an easily reproducible crash.

I think the only solution left is to take a copy of the contents of
the frame, resize, then copy the contents back. I don’t know how to do
that and a quick google search reveals nothing helpful.

Apple assume you’ll always be able to redraw the contents of the
window on resize, afaict, so they don’t provide any way of retaining
the pre‐resize contents.
-- 
Alan Third