From bcaedd578112cd501239f45a6ac62ba391952fb9 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 15 Dec 2025 08:54:55 -0800
Subject: [PATCH] Fixed messageboxes when using window scenes on Apple
platforms
---
src/video/uikit/SDL_uikitmessagebox.m | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/video/uikit/SDL_uikitmessagebox.m b/src/video/uikit/SDL_uikitmessagebox.m
index b96f5fde70256..410e79bac874c 100644
--- a/src/video/uikit/SDL_uikitmessagebox.m
+++ b/src/video/uikit/SDL_uikitmessagebox.m
@@ -98,11 +98,19 @@ static BOOL UIKit_ShowMessageBoxAlertController(const SDL_MessageBoxData *messag
}
if (window == nil || window.rootViewController == nil) {
+ if (@available(iOS 13.0, tvOS 13.0, *)) {
+ UIWindowScene *scene = UIKit_GetActiveWindowScene();
+ if (scene) {
+ alertwindow = [[UIWindow alloc] initWithWindowScene:scene];
+ }
+ }
+ if (!alertwindow) {
#ifdef SDL_PLATFORM_VISIONOS
- alertwindow = [[UIWindow alloc] init];
+ alertwindow = [[UIWindow alloc] init];
#else
- alertwindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
+ alertwindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
#endif
+ }
alertwindow.rootViewController = [UIViewController new];
alertwindow.windowLevel = UIWindowLevelAlert;