rust-windowing / winit

Window handling library in pure Rust
https://docs.rs/winit/
Apache License 2.0
4.55k stars 876 forks source link

set_simple_fullscreen content is obscured by "The Notch" #3742

Open sfsam opened 1 week ago

sfsam commented 1 week ago

Description

New MacBooks have a camera housing that protrudes into the screen. The set_simple_fullscreen method does not seem to take this "feature" of newer laptops into account. Thus, window content is obscured by "The Notch". Apple provides an API for macOS 12+ to address this issue. Use the safeAreaInsets property to size content so it won't be obscured:

The safe area reflects the unobscured portion of the screen. On some Macs, 
the insets reflect the portion of the screen covered by the camera housing. 
If your app offers a custom full-screen experience, apply the specified insets 
to the screen’s frame rectangle to obtain the area within which it is safe to 
display your content. Content in the safe area is guaranteed to be unobscured.

https://developer.apple.com/documentation/appkit/nsscreen/3882821-safeareainsets?language=objc

macOS version

macOS 14.5 (23F79)

Winit version

0.30.2

daxpedda commented 6 days ago

@madsmtm I believe this is a duplicate of https://github.com/rust-windowing/winit/issues/2066.

See https://github.com/rust-windowing/winit/issues/2308 as well.