diff --git a/src/macro-core/macro-condition-scene.cpp b/src/macro-core/macro-condition-scene.cpp index 49acd647..e46d58cc 100644 --- a/src/macro-core/macro-condition-scene.cpp +++ b/src/macro-core/macro-condition-scene.cpp @@ -53,24 +53,33 @@ bool MacroConditionScene::CheckCondition() auto current = obs_frontend_get_current_scene(); auto weak = obs_source_get_weak_source(current); bool match = weak == _scene.GetScene(false); + SetVariableValue(obs_source_get_name(current)); obs_weak_source_release(weak); obs_source_release(current); return match; } + SetVariableValue(GetWeakSourceName(switcher->currentScene)); return switcher->currentScene == _scene.GetScene(false); case Type::PREVIOUS: if (switcher->anySceneTransitionStarted() && _useTransitionTargetScene) { + SetVariableValue( + GetWeakSourceName(switcher->currentScene)); return switcher->currentScene == _scene.GetScene(false); } + SetVariableValue(GetWeakSourceName(switcher->previousScene)); return switcher->previousScene == _scene.GetScene(false); case Type::CHANGED: + SetVariableValue(GetWeakSourceName(switcher->currentScene)); return sceneChanged; case Type::NOT_CHANGED: + SetVariableValue(GetWeakSourceName(switcher->currentScene)); return !sceneChanged; case Type::CURRENT_PATTERN: + SetVariableValue(GetWeakSourceName(switcher->currentScene)); return sceneNameMatchesRegex(switcher->currentScene, _pattern); case Type::PREVIOUS_PATTERN: + SetVariableValue(GetWeakSourceName(switcher->previousScene)); return sceneNameMatchesRegex(switcher->previousScene, _pattern); } diff --git a/src/macro-core/macro-condition-scene.hpp b/src/macro-core/macro-condition-scene.hpp index ec6def07..b2552634 100644 --- a/src/macro-core/macro-condition-scene.hpp +++ b/src/macro-core/macro-condition-scene.hpp @@ -9,7 +9,7 @@ class MacroConditionScene : public MacroCondition { public: - MacroConditionScene(Macro *m) : MacroCondition(m) {} + MacroConditionScene(Macro *m) : MacroCondition(m, true) {} bool CheckCondition(); bool Save(obs_data_t *obj) const; bool Load(obs_data_t *obj);