mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 13:08:50 +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:
parent
f41d0d9d77
commit
0676c385ba
@ -126,11 +126,13 @@ void OBSBasic::TriggerQuickTransition(int id)
|
|||||||
OBSScene scene = GetCurrentScene();
|
OBSScene scene = GetCurrentScene();
|
||||||
obs_source_t *source = obs_scene_get_source(scene);
|
obs_source_t *source = obs_scene_get_source(scene);
|
||||||
|
|
||||||
ui->transitionDuration->setValue(qt->duration);
|
if (GetCurrentTransition() != qt->source) {
|
||||||
if (GetCurrentTransition() != qt->source)
|
OverrideTransition(qt->source);
|
||||||
SetTransition(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;
|
swapScene = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void OverrideTransition(OBSSource transition)
|
void OBSBasic::OverrideTransition(OBSSource transition)
|
||||||
{
|
{
|
||||||
obs_source_t *oldTransition = obs_get_output_source(0);
|
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,
|
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);
|
obs_scene_t *scene = obs_scene_from_source(source);
|
||||||
bool usingPreviewProgram = IsPreviewProgramMode();
|
bool usingPreviewProgram = IsPreviewProgramMode();
|
||||||
@ -384,6 +387,9 @@ void OBSBasic::TransitionToScene(OBSSource source, bool force, bool direct,
|
|||||||
prevFTBSource = nullptr;
|
prevFTBSource = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (quickTransition)
|
||||||
|
duration = quickDuration;
|
||||||
|
|
||||||
bool success = obs_transition_start(
|
bool success = obs_transition_start(
|
||||||
transition, OBS_TRANSITION_MODE_AUTO, duration, source);
|
transition, OBS_TRANSITION_MODE_AUTO, duration, source);
|
||||||
if (!success)
|
if (!success)
|
||||||
|
@ -476,12 +476,13 @@ public slots:
|
|||||||
void SaveProject();
|
void SaveProject();
|
||||||
|
|
||||||
void SetTransition(OBSSource transition);
|
void SetTransition(OBSSource transition);
|
||||||
|
void OverrideTransition(OBSSource transition);
|
||||||
void TransitionToScene(OBSScene scene, bool force = false,
|
void TransitionToScene(OBSScene scene, bool force = false,
|
||||||
bool direct = false);
|
bool direct = false);
|
||||||
void TransitionToScene(OBSSource scene, bool force = false,
|
void TransitionToScene(OBSSource scene, bool force = false,
|
||||||
bool direct = false,
|
bool direct = false,
|
||||||
bool quickTransition = false,
|
bool quickTransition = false,
|
||||||
bool black = false);
|
int quickDuration = 0, bool black = false);
|
||||||
void SetCurrentScene(OBSSource scene, bool force = false,
|
void SetCurrentScene(OBSSource scene, bool force = false,
|
||||||
bool direct = false);
|
bool direct = false);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user