diff --git a/UI/obs-frontend-api/obs-frontend-api.h b/UI/obs-frontend-api/obs-frontend-api.h index 298761481..3000d4676 100644 --- a/UI/obs-frontend-api/obs-frontend-api.h +++ b/UI/obs-frontend-api/obs-frontend-api.h @@ -57,6 +57,7 @@ enum obs_frontend_event { OBS_FRONTEND_EVENT_TBAR_VALUE_CHANGED, OBS_FRONTEND_EVENT_SCENE_COLLECTION_CHANGING, OBS_FRONTEND_EVENT_PROFILE_CHANGING, + OBS_FRONTEND_EVENT_SCRIPTING_SHUTDOWN, }; /* ------------------------------------------------------------------------- */ diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index c9e0cea98..421706bbe 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -4590,6 +4590,9 @@ void OBSBasic::closeEvent(QCloseEvent *event) ClearExtraBrowserDocks(); #endif + if (api) + api->on_event(OBS_FRONTEND_EVENT_SCRIPTING_SHUTDOWN); + disableSaving++; /* Clear all scene data (dialogs, widgets, widget sub-items, scenes, diff --git a/docs/sphinx/reference-frontend-api.rst b/docs/sphinx/reference-frontend-api.rst index c6313dcd8..af71acfaa 100644 --- a/docs/sphinx/reference-frontend-api.rst +++ b/docs/sphinx/reference-frontend-api.rst @@ -93,6 +93,10 @@ Structures/Enumerations Triggered when a profile has been added/removed/renamed. + - **OBS_FRONTEND_EVENT_SCRIPTING_SHUTDOWN** + + Triggered when scripts are unloaded when exiting OBS. + - **OBS_FRONTEND_EVENT_EXIT** Triggered when the program is about to exit.