diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index e3eee49aa..e18b96fb5 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -3737,6 +3737,24 @@ void OBSBasic::RemoveSelectedScene() obs_data_array_push_back(array, scene_data); obs_data_release(scene_data); + /* ----------------------------------------------- */ + /* save all scenes and groups the scene is used in */ + + for (int i = 0; i < ui->scenes->count(); i++) { + QListWidgetItem *widget_item = ui->scenes->item(i); + auto item_scene = GetOBSRef(widget_item); + if (scene == item_scene) + continue; + auto *item = obs_scene_find_source_recursive( + item_scene, obs_source_get_name(source)); + if (item) { + scene_data = obs_save_source(obs_scene_get_source( + obs_sceneitem_get_scene(item))); + obs_data_array_push_back(array, scene_data); + obs_data_release(scene_data); + } + } + /* --------------------------- */ /* undo/redo */