diff --git a/UI/api-interface.cpp b/UI/api-interface.cpp index 17a020d28..396650530 100644 --- a/UI/api-interface.cpp +++ b/UI/api-interface.cpp @@ -645,7 +645,8 @@ struct OBSStudioAPI : obs_frontend_callbacks { void on_event(enum obs_frontend_event event) override { if (main->disableSaving && - event != OBS_FRONTEND_EVENT_SCENE_COLLECTION_CLEANUP) + event != OBS_FRONTEND_EVENT_SCENE_COLLECTION_CLEANUP && + event != OBS_FRONTEND_EVENT_SCENE_COLLECTION_EXIT) return; for (size_t i = callbacks.size(); i > 0; i--) { diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 28b74f354..71f54bc2c 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -4542,15 +4542,15 @@ void OBSBasic::closeEvent(QCloseEvent *event) ClearExtraBrowserDocks(); #endif - if (api) - api->on_event(OBS_FRONTEND_EVENT_EXIT); - disableSaving++; /* Clear all scene data (dialogs, widgets, widget sub-items, scenes, * sources, etc) so that all references are released before shutdown */ ClearSceneData(); + if (api) + api->on_event(OBS_FRONTEND_EVENT_EXIT); + App()->quit(); }