SDL: Fix Main Thread Checker warning on macOS

From 1f276a5148250f655ef5631ff7331b40de04cedd Mon Sep 17 00:00:00 2001
From: diddily <[EMAIL REDACTED]>
Date: Tue, 26 Jul 2022 13:30:59 -0400
Subject: [PATCH] Fix Main Thread Checker warning on macOS

Cache off NSWindow's windowNumber in SDL_WindowData on setup and use that in `Cocoa_SendWakeupEvent` to prevent accessing windowNumber off the main  thread.
---
 src/video/cocoa/SDL_cocoaevents.m | 4 +---
 src/video/cocoa/SDL_cocoawindow.h | 1 +
 src/video/cocoa/SDL_cocoawindow.m | 1 +
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/video/cocoa/SDL_cocoaevents.m b/src/video/cocoa/SDL_cocoaevents.m
index 63cc634c02e..4903a8a040e 100644
--- a/src/video/cocoa/SDL_cocoaevents.m
+++ b/src/video/cocoa/SDL_cocoaevents.m
@@ -549,13 +549,11 @@ - (void)handleURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEv
 void Cocoa_SendWakeupEvent(_THIS, SDL_Window *window)
 { @autoreleasepool
 {
-    NSWindow *nswindow = ((__bridge SDL_WindowData *) window->driverdata).nswindow;
-
     NSEvent* event = [NSEvent otherEventWithType: NSEventTypeApplicationDefined
                                     location: NSMakePoint(0,0)
                                modifierFlags: 0
                                    timestamp: 0.0
-                                windowNumber: nswindow.windowNumber
+                                windowNumber: ((__bridge SDL_WindowData *) window->driverdata).window_number
                                      context: nil
                                      subtype: 0
                                        data1: 0
diff --git a/src/video/cocoa/SDL_cocoawindow.h b/src/video/cocoa/SDL_cocoawindow.h
index 61324550a04..9691fa3f17c 100644
--- a/src/video/cocoa/SDL_cocoawindow.h
+++ b/src/video/cocoa/SDL_cocoawindow.h
@@ -126,6 +126,7 @@ typedef enum
     @property (nonatomic) NSMutableArray *nscontexts;
     @property (nonatomic) SDL_bool created;
     @property (nonatomic) SDL_bool inWindowFullscreenTransition;
+    @property (nonatomic) NSInteger window_number;
     @property (nonatomic) NSInteger flash_request;
     @property (nonatomic) Cocoa_WindowListener *listener;
     @property (nonatomic) SDL_VideoData *videodata;
diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m
index 157353cf0da..1e47390be23 100644
--- a/src/video/cocoa/SDL_cocoawindow.m
+++ b/src/video/cocoa/SDL_cocoawindow.m
@@ -1615,6 +1615,7 @@ - (BOOL)acceptsFirstMouse:(NSEvent *)theEvent
     data.nswindow = nswindow;
     data.created = created;
     data.videodata = videodata;
+    data.window_number = nswindow.windowNumber;
     data.nscontexts = [[NSMutableArray alloc] init];
     data.sdlContentView = nsview;