From 02bdccc6ad10b7791f11f5b4ef3489939d060a5b Mon Sep 17 00:00:00 2001 From: jp9000 Date: Sun, 26 Aug 2018 22:02:11 -0700 Subject: [PATCH] UI: Select item that user adds When a user adds an item (either by adding or copying an item), select it. Fixes a bug with copying and pasting sources where the pasted source will not have the copied transform applied to it. --- UI/window-basic-main.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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); } }