SDL: Don't deliver window events while it's being destroyed

From 432af82a88c6483b311c07b18199d5cf022790da Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sat, 28 Jan 2023 15:24:18 -0800
Subject: [PATCH] Don't deliver window events while it's being destroyed

---
 src/events/SDL_windowevents.c | 3 +++
 src/video/SDL_video.c         | 4 ----
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/events/SDL_windowevents.c b/src/events/SDL_windowevents.c
index d50e75e964ab..be5373e2f2f8 100644
--- a/src/events/SDL_windowevents.c
+++ b/src/events/SDL_windowevents.c
@@ -46,6 +46,9 @@ int SDL_SendWindowEvent(SDL_Window *window, SDL_EventType windowevent,
     if (window == NULL) {
         return 0;
     }
+    if (window->is_destroying) {
+        return 0;
+    }
     switch (windowevent) {
     case SDL_EVENT_WINDOW_SHOWN:
         if (!(window->flags & SDL_WINDOW_HIDDEN)) {
diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index d23f0a6687dc..3f2e2f526332 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -3001,10 +3001,6 @@ void SDL_CheckWindowDisplayChanged(SDL_Window *window)
 {
     int display_index;
 
-    if (window->is_destroying) {
-        return;
-    }
-
     display_index = SDL_GetWindowDisplayIndex(window);
     SDL_SendWindowEvent(window, SDL_EVENT_WINDOW_DISPLAY_CHANGED, display_index, 0);
 }