@@ -127,6 +127,11 @@ void OBSBasic::RemoveQuickTransitionHotkey(QuickTransition *qt)
127127
128128void OBSBasic::InitTransition (obs_source_t *transition)
129129{
130+ auto onTransitionStart = [](void *data, calldata_t *) {
131+ OBSBasic *window = (OBSBasic *)data;
132+ QMetaObject::invokeMethod (window, " TransitionStarted" , Qt::QueuedConnection);
133+ };
134+
130135 auto onTransitionStop = [](void *data, calldata_t *) {
131136 OBSBasic *window = (OBSBasic *)data;
132137 QMetaObject::invokeMethod (window, " TransitionStopped" , Qt::QueuedConnection);
@@ -138,6 +143,7 @@ void OBSBasic::InitTransition(obs_source_t *transition)
138143 };
139144
140145 signal_handler_t *handler = obs_source_get_signal_handler (transition);
146+ signal_handler_connect (handler, " transition_start" , onTransitionStart, this );
141147 signal_handler_connect (handler, " transition_video_stop" , onTransitionStop, this );
142148 signal_handler_connect (handler, " transition_stop" , onTransitionFullStop, this );
143149}
@@ -228,6 +234,11 @@ void OBSBasic::TransitionToScene(OBSScene scene, bool force)
228234 TransitionToScene (source, force);
229235}
230236
237+ void OBSBasic::TransitionStarted ()
238+ {
239+ EnableTransitionWidgets (false );
240+ }
241+
231242void OBSBasic::TransitionStopped ()
232243{
233244 if (swapScenesMode) {
@@ -362,8 +373,6 @@ void OBSBasic::TransitionToScene(OBSSource source, bool force, bool quickTransit
362373
363374 enum obs_transition_mode mode = manual ? OBS_TRANSITION_MODE_MANUAL : OBS_TRANSITION_MODE_AUTO;
364375
365- EnableTransitionWidgets (false );
366-
367376 bool success = obs_transition_start (transition, mode, duration, source);
368377
369378 if (!success)
@@ -763,7 +772,8 @@ void OBSBasic::TBarChanged(int value)
763772 tBarActive = true ;
764773 }
765774
766- obs_transition_set_manual_time (transition, (float )value / T_BAR_PRECISION_F);
775+ float clampedValue = std::clamp<float >((float )value / T_BAR_PRECISION_F, 0 .01f , 0 .99f );
776+ obs_transition_set_manual_time (transition, clampedValue);
767777
768778 OnEvent (OBS_FRONTEND_EVENT_TBAR_VALUE_CHANGED);
769779}
0 commit comments