diff --git a/libobs/obs-scene.c b/libobs/obs-scene.c index 10d5e0005..b0a3630f0 100644 --- a/libobs/obs-scene.c +++ b/libobs/obs-scene.c @@ -744,6 +744,13 @@ obs_scene_t *obs_scene_create(const char *name) return source->context.data; } +obs_scene_t *obs_scene_create_private(const char *name) +{ + struct obs_source *source = obs_source_create_private("scene", name, + NULL); + return source->context.data; +} + obs_scene_t *obs_scene_duplicate(obs_scene_t *scene, const char *name) { struct obs_scene *new_scene = obs_scene_create(name); @@ -1014,7 +1021,8 @@ obs_sceneitem_t *obs_scene_add(obs_scene_t *scene, obs_source_t *source) full_unlock(scene); - init_hotkeys(scene, item, obs_source_get_name(source)); + if (!scene->source->context.private) + init_hotkeys(scene, item, obs_source_get_name(source)); calldata_set_ptr(¶ms, "scene", scene); calldata_set_ptr(¶ms, "item", item); diff --git a/libobs/obs.h b/libobs/obs.h index 9a22ccdf3..4d005d3de 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -1082,6 +1082,8 @@ EXPORT void obs_transition_swap_end(obs_source_t *tr_dest, */ EXPORT obs_scene_t *obs_scene_create(const char *name); +EXPORT obs_scene_t *obs_scene_create_private(const char *name); + /** * Duplicates a scene. *