浏览代码

UI: Don't override transition if quick transition

Fixes an issue where quick transitions would not function if the scene
has a transition override set for it.
jp9000 8 年之前
父节点
当前提交
ed7ae5839b
共有 2 个文件被更改,包括 5 次插入4 次删除
  1. 4 3
      UI/window-basic-main-transitions.cpp
  2. 1 1
      UI/window-basic-main.hpp

+ 4 - 3
UI/window-basic-main-transitions.cpp

@@ -110,7 +110,7 @@ void OBSBasic::TriggerQuickTransition(int id)
 		if (GetCurrentTransition() != qt->source)
 			SetTransition(qt->source);
 
-		TransitionToScene(source);
+		TransitionToScene(source, false, false, true);
 	}
 }
 
@@ -271,7 +271,8 @@ void OBSBasic::TransitionFullyStopped()
 	}
 }
 
-void OBSBasic::TransitionToScene(OBSSource source, bool force, bool direct)
+void OBSBasic::TransitionToScene(OBSSource source, bool force, bool direct,
+		bool quickTransition)
 {
 	obs_scene_t *scene = obs_scene_from_source(source);
 	bool usingPreviewProgram = IsPreviewProgramMode();
@@ -319,7 +320,7 @@ void OBSBasic::TransitionToScene(OBSSource source, bool force, bool direct)
 				"transition");
 		int duration = ui->transitionDuration->value();
 
-		if (trOverrideName && *trOverrideName) {
+		if (trOverrideName && *trOverrideName && !quickTransition) {
 			OBSSource trOverride = FindTransition(trOverrideName);
 			if (trOverride) {
 				transition = trOverride;

+ 1 - 1
UI/window-basic-main.hpp

@@ -395,7 +395,7 @@ public slots:
 	void TransitionToScene(OBSScene scene, bool force = false,
 			bool direct = false);
 	void TransitionToScene(OBSSource scene, bool force = false,
-			bool direct = false);
+			bool direct = false, bool quickTransition = false);
 	void SetCurrentScene(OBSSource scene, bool force = false,
 			bool direct = false);