Subject: Re: bug#25818: 25.2; frame moved off display does not return (OS X)

From: Alan Third <[email-masked]>
Date: Sat, 29 Apr 2017 15:51:11 +0100

On Sat, Apr 29, 2017 at 01:15:10PM +0200, Charles A. Roelli wrote:
> My updated patch takes into account the case where "Spaces" is off or
> unavailable -- if you read the part above what I added:
> 
> #ifdef NS_IMPL_COCOA
> #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_9
>   // If separate spaces is on, it is like each screen is independent.  There
> is
>   // no spanning of frames across screens.
>   if ([NSScreen screensHaveSeparateSpaces])
>     {
>       NSTRACE_MSG ("Screens have separate spaces");
>       frameRect = [super constrainFrameRect:frameRect toScreen:screen];
>       NSTRACE_RETURN_RECT (frameRect);
>       return frameRect;
>     }
> #endif
> 
> there is nothing there to prevent a child frame from being constrained -- so
> I will need input from somebody else on that.

I think the screensHaveSeparateSpaces setting makes each monitor a
completely independent screen, so you won’t run into the problems you
have in the normal set‐up where a frame might span two monitors.

Therefore I think we could just add a check for whether it’s a child
frame, and if so, don’t constrain it at all.

-- 
Alan Third