Subject: Re: bug#72440: 31.0.50; MacOS: TUINSRemoteViewController log message

From: Alan Third <[email-masked]>
Date: Mon, 5 Aug 2024 21:12:21 +0100

On Mon, Aug 05, 2024 at 09:38:41PM +0200, Mattias Engdegård wrote:
> 5 aug. 2024 kl. 21.16 skrev Alan Third <[email-masked]>:
> 
> > The correct thing to do is only set this when compiling on v14 or
> > above, so the #ifdef is the right way to go.
> 
> Thanks, I pushed something that at least silenced the compiler, but
> please verify that I didn't break anything.
> 
> But should I worry about the property not being set on my machine?
> If I understand the release notes:
> 
> > In macOS 14, AppKit is exposing the clipsToBounds property of NSView.
> > 
> > For applications linked against the macOS 14 SDK, the default
> > value of this property is true. Apps linked against older SDKs
> > default to false. Some classes, like NSClipView, continue to
> > default to true. The change in defaults recognizes that it is
> > vastly easier to reason about clipping a view’s descendants than
> > it is to unclip a view’s ancestors.
> > 
> > Users can turn clipping back on by using the NSView.clipsToBounds
> > setter or using the attributes inspector of a view in the Xcode
> > interface builder. This property is available back to macOS 10.9.
> > This availability is intended to allow code targeting older OSes
> > to set this property to true without guarding the setter in an
> > availability check. Setting this property to false on previous
> > OSes may not work reliably.
> 
> correctly, then the property exists in older versions but is just
> not exposed -- is that a correct interpretation? So attempting to
> set it might actually work, even though the compiler warns? If so,
> would it be possible to declare it manually to please the compiler?

Nothing should have changed on older machines. If it had you'd be
seeing the same messages as in the original bug report.

Looking at the docs at

https://developer.apple.com/documentation/appkit/nsview/4236466-clipstobounds?language=objc

it looks very much like we want to just set this to YES and forget
about it, but going by the examples they give we're unlikely to run
into any actual layout issues as we don't (intentionally) do any of
the things they talk about.

We have no reason to ever draw outside the bounds.

-- 
Alan Third