فهرست منبع

UI: Fix t-bar not working with transition override

Clayton Groeneveld 6 سال پیش
والد
کامیت
95c68fed15
1فایلهای تغییر یافته به همراه11 افزوده شده و 5 حذف شده
  1. 11 5
      UI/window-basic-main-transitions.cpp

+ 11 - 5
UI/window-basic-main-transitions.cpp

@@ -889,8 +889,11 @@ void OBSBasic::TBarReleased()
 {
 {
 	int val = tBar->value();
 	int val = tBar->value();
 
 
+	OBSSource transition = obs_get_output_source(0);
+	obs_source_release(transition);
+
 	if ((tBar->maximum() - val) <= T_BAR_CLAMP) {
 	if ((tBar->maximum() - val) <= T_BAR_CLAMP) {
-		obs_transition_set_manual_time(GetCurrentTransition(), 1.0f);
+		obs_transition_set_manual_time(transition, 1.0f);
 		tBar->blockSignals(true);
 		tBar->blockSignals(true);
 		tBar->setValue(0);
 		tBar->setValue(0);
 		tBar->blockSignals(false);
 		tBar->blockSignals(false);
@@ -898,7 +901,8 @@ void OBSBasic::TBarReleased()
 		EnableTransitionWidgets(true);
 		EnableTransitionWidgets(true);
 
 
 	} else if (val <= T_BAR_CLAMP) {
 	} else if (val <= T_BAR_CLAMP) {
-		obs_transition_set_manual_time(GetCurrentTransition(), 0.0f);
+		obs_transition_set_manual_time(transition, 0.0f);
+		TransitionFullyStopped();
 		tBar->blockSignals(true);
 		tBar->blockSignals(true);
 		tBar->setValue(0);
 		tBar->setValue(0);
 		tBar->blockSignals(false);
 		tBar->blockSignals(false);
@@ -911,16 +915,18 @@ void OBSBasic::TBarReleased()
 
 
 void OBSBasic::TBarChanged(int value)
 void OBSBasic::TBarChanged(int value)
 {
 {
+	OBSSource transition = obs_get_output_source(0);
+	obs_source_release(transition);
+
 	if (!tBarDown) {
 	if (!tBarDown) {
-		obs_transition_set_manual_torque(GetCurrentTransition(), 8.0f,
-						 0.05f);
+		obs_transition_set_manual_torque(transition, 8.0f, 0.05f);
 		TransitionToScene(GetCurrentSceneSource(), false, false, false,
 		TransitionToScene(GetCurrentSceneSource(), false, false, false,
 				  0, true);
 				  0, true);
 		tBarActive = true;
 		tBarActive = true;
 		tBarDown = true;
 		tBarDown = true;
 	}
 	}
 
 
-	obs_transition_set_manual_time(GetCurrentTransition(),
+	obs_transition_set_manual_time(transition,
 				       (float)value / T_BAR_PRECISION_F);
 				       (float)value / T_BAR_PRECISION_F);
 }
 }