diff --git a/src/macro-core/macro-condition-filter.cpp b/src/macro-core/macro-condition-filter.cpp index cf3aa27e..99d13253 100644 --- a/src/macro-core/macro-condition-filter.cpp +++ b/src/macro-core/macro-condition-filter.cpp @@ -54,12 +54,20 @@ bool MacroConditionFilter::CheckCondition() break; case Condition::SETTINGS: ret = compareSourceSettings(_filter, _settings, _regex); + if (IsReferencedInVars()) { + SetVariableValue(getSourceSettings(_filter)); + } break; default: break; } obs_source_release(s); + + if (GetVariableValue().empty()) { + SetVariableValue(ret ? "true" : "false"); + } + return ret; } diff --git a/src/macro-core/macro-condition-filter.hpp b/src/macro-core/macro-condition-filter.hpp index 6e30cc03..4b22e90e 100644 --- a/src/macro-core/macro-condition-filter.hpp +++ b/src/macro-core/macro-condition-filter.hpp @@ -10,7 +10,7 @@ class MacroConditionFilter : public MacroCondition { public: - MacroConditionFilter(Macro *m) : MacroCondition(m) {} + MacroConditionFilter(Macro *m) : MacroCondition(m, true) {} bool CheckCondition(); bool Save(obs_data_t *obj) const; bool Load(obs_data_t *obj);