diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 2d0b5c0e1..ba4d90d9a 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -2388,6 +2388,19 @@ void OBSBasic::RemoveScene(OBSSource source) api->on_event(OBS_FRONTEND_EVENT_SCENE_LIST_CHANGED); } +static bool select_one(obs_scene_t *scene, obs_sceneitem_t *item, void *param) +{ + obs_sceneitem_t *selectedItem = + reinterpret_cast(param); + if (obs_sceneitem_is_group(item)) + obs_sceneitem_group_enum_items(item, select_one, param); + + obs_sceneitem_select(item, (selectedItem == item)); + + UNUSED_PARAMETER(scene); + return true; +} + void OBSBasic::AddSceneItem(OBSSceneItem item) { obs_scene_t *scene = obs_sceneitem_get_scene(item); @@ -2404,6 +2417,8 @@ void OBSBasic::AddSceneItem(OBSSceneItem item) obs_source_get_name(itemSource), obs_source_get_id(itemSource), obs_source_get_name(sceneSource)); + + obs_scene_enum_items(scene, select_one, (obs_sceneitem_t*)item); } }