From b2bdf96cd6f423fda3430592c82940349bac8bd0 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Wed, 22 Feb 2017 03:08:37 -0800 Subject: [PATCH] UI: Trigger frontend api scene change after transition Changes the OBS_FRONTEND_EVENT_SCENE_CHANGED event after transitioning is complete rather than right when the user hits a scene change. --- UI/window-basic-main-transitions.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/UI/window-basic-main-transitions.cpp b/UI/window-basic-main-transitions.cpp index 3a69b24ce..64906d837 100644 --- a/UI/window-basic-main-transitions.cpp +++ b/UI/window-basic-main-transitions.cpp @@ -234,8 +234,10 @@ void OBSBasic::TransitionStopped() SetCurrentScene(scene); } - if (api) + if (api) { api->on_event(OBS_FRONTEND_EVENT_TRANSITION_STOPPED); + api->on_event(OBS_FRONTEND_EVENT_SCENE_CHANGED); + } swapScene = nullptr; } @@ -274,19 +276,19 @@ void OBSBasic::TransitionToScene(OBSSource source, bool force) obs_source_t *transition = obs_get_output_source(0); - if (force) + if (force) { obs_transition_set(transition, source); - else + if (api) + api->on_event(OBS_FRONTEND_EVENT_SCENE_CHANGED); + } else { obs_transition_start(transition, OBS_TRANSITION_MODE_AUTO, ui->transitionDuration->value(), source); + } if (usingPreviewProgram && sceneDuplicationMode) obs_scene_release(scene); obs_source_release(transition); - - if (api) - api->on_event(OBS_FRONTEND_EVENT_SCENE_CHANGED); } static inline void SetComboTransition(QComboBox *combo, obs_source_t *tr)