RFR: 8377350: [iOS] Add support for UIWindowScene

Jose Pereda jpereda at openjdk.org
Wed Feb 11 12:47:52 UTC 2026


On Wed, 11 Feb 2026 12:36:13 GMT, Johan Vos <jvos at openjdk.org> wrote:

>> This PR adds support for iOS native window scene, which was added some time ago starting iOS 13 (in 2019).
>> 
>> Current iOS development requires iOS SDK 26, and minimum deployment target is set to iOS 15 (meaning that apps will run on all devices with iOS 15 or greater).
>> 
>> It is safe then to not include the safe-guard `if (@available(iOS 13.0, *)) {...}`, which will make the code more complex.
>> 
>> Adding the native UIScene and UIWindowScene APIs follows the Apple standards, but as a fallback, the deprecated API is still kept there (`keyWindow` was deprecated starting iOS 13, and `initWithFrame:` was deprecated starting iOS 26). This is for a follow-up issue.
>> 
>> Note: This patch doesn't really add support for multiple windows, as this would require more complex changes.
>
> modules/javafx.graphics/src/main/native-glass/ios/GlassWindow.m line 834:
> 
>> 832:             GLASS_LOG("SCREEN: %@", screen);
>> 833:             CGRect applicationFrame = [screen bounds];
>> 834:             GLASS_LOG("FRAME: %.1f %.1f", applicationFrame.size.width, applicationFrame.size.height);
> 
> Aren't the dimensions printed when you print the "object" using @ ?

No, `CGRect` is a struct, and you get this warning:

warning: format specifies type 'id' but the argument has type 'CGRect' (aka 'struct CGRect') [-Wformat]

which can be safely ignored of course, but then the logs won't show a null value:

FRAME: (null)

and that's why I applied the change.

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/2072#discussion_r2793088877


More information about the openjfx-dev mailing list