SDL: Fixed messageboxes when using window scenes on Apple platforms

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;