فهرست منبع

Make sure that we quit if we get a terminating event

This covers the case where the application didn't handle the quit or terminating event, we still need the main loop to finish.
Sam Lantinga 11 ماه پیش
والد
کامیت
a432abf4cc
1فایلهای تغییر یافته به همراه5 افزوده شده و 0 حذف شده
  1. 5 0
      src/main/SDL_main_callbacks.c

+ 5 - 0
src/main/SDL_main_callbacks.c

@@ -75,6 +75,11 @@ static bool SDLCALL SDL_MainCallbackEventWatcher(void *userdata, SDL_Event *even
         // Make sure any currently queued events are processed then dispatch this before continuing
         SDL_DispatchMainCallbackEvents();
         SDL_DispatchMainCallbackEvent(event);
+
+        // Make sure that we quit if we get a terminating event
+        if (event->type == SDL_EVENT_TERMINATING) {
+            SDL_CompareAndSwapAtomicInt(&apprc, SDL_APP_CONTINUE, SDL_APP_SUCCESS);
+        }
     } else {
         // We'll process this event later from the main event queue
     }