浏览代码

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

Sam Lantinga 2 年之前
父节点
当前提交
432af82a88
共有 2 个文件被更改,包括 3 次插入4 次删除
  1. 3 0
      src/events/SDL_windowevents.c
  2. 0 4
      src/video/SDL_video.c

+ 3 - 0
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)) {

+ 0 - 4
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);
 }