0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 04:42:18 +02:00

UI: Fix main transition being set to the quick one

This fixes an issue where using a quick transition, it would change
the main transition as well.
This commit is contained in:
Clayton Groeneveld 2019-10-24 19:52:26 -05:00
parent f41d0d9d77
commit 0676c385ba
2 changed files with 14 additions and 7 deletions

View File

@ -126,11 +126,13 @@ void OBSBasic::TriggerQuickTransition(int id)
OBSScene scene = GetCurrentScene();
obs_source_t *source = obs_scene_get_source(scene);
ui->transitionDuration->setValue(qt->duration);
if (GetCurrentTransition() != qt->source)
SetTransition(qt->source);
if (GetCurrentTransition() != qt->source) {
OverrideTransition(qt->source);
overridingTransition = true;
}
TransitionToScene(source, false, false, true, qt->fadeToBlack);
TransitionToScene(source, false, false, true, qt->duration,
qt->fadeToBlack);
}
}
@ -281,7 +283,7 @@ void OBSBasic::TransitionStopped()
swapScene = nullptr;
}
static void OverrideTransition(OBSSource transition)
void OBSBasic::OverrideTransition(OBSSource transition)
{
obs_source_t *oldTransition = obs_get_output_source(0);
@ -303,7 +305,8 @@ void OBSBasic::TransitionFullyStopped()
}
void OBSBasic::TransitionToScene(OBSSource source, bool force, bool direct,
bool quickTransition, bool black)
bool quickTransition, int quickDuration,
bool black)
{
obs_scene_t *scene = obs_scene_from_source(source);
bool usingPreviewProgram = IsPreviewProgramMode();
@ -384,6 +387,9 @@ void OBSBasic::TransitionToScene(OBSSource source, bool force, bool direct,
prevFTBSource = nullptr;
}
if (quickTransition)
duration = quickDuration;
bool success = obs_transition_start(
transition, OBS_TRANSITION_MODE_AUTO, duration, source);
if (!success)

View File

@ -476,12 +476,13 @@ public slots:
void SaveProject();
void SetTransition(OBSSource transition);
void OverrideTransition(OBSSource transition);
void TransitionToScene(OBSScene scene, bool force = false,
bool direct = false);
void TransitionToScene(OBSSource scene, bool force = false,
bool direct = false,
bool quickTransition = false,
bool black = false);
int quickDuration = 0, bool black = false);
void SetCurrentScene(OBSSource scene, bool force = false,
bool direct = false);