diff --git a/src/macro-core/macro-condition-source.cpp b/src/macro-core/macro-condition-source.cpp index 65af2fa1..4b00cb66 100644 --- a/src/macro-core/macro-condition-source.cpp +++ b/src/macro-core/macro-condition-source.cpp @@ -38,6 +38,10 @@ bool MacroConditionSource::CheckCondition() case SourceCondition::SETTINGS: ret = compareSourceSettings(_source.GetSource(), _settings, _regex); + if (IsReferencedInVars()) { + SetVariableValue( + getSourceSettings(_source.GetSource())); + } break; default: break; @@ -45,6 +49,10 @@ bool MacroConditionSource::CheckCondition() obs_source_release(s); + if (GetVariableValue().empty()) { + SetVariableValue(ret ? "true" : "false"); + } + return ret; } diff --git a/src/macro-core/macro-condition-source.hpp b/src/macro-core/macro-condition-source.hpp index 8f47540c..20f38492 100644 --- a/src/macro-core/macro-condition-source.hpp +++ b/src/macro-core/macro-condition-source.hpp @@ -16,7 +16,7 @@ enum class SourceCondition { class MacroConditionSource : public MacroCondition { public: - MacroConditionSource(Macro *m) : MacroCondition(m) {} + MacroConditionSource(Macro *m) : MacroCondition(m, true) {} bool CheckCondition(); bool Save(obs_data_t *obj) const; bool Load(obs_data_t *obj);