diff --git a/src/macro-core/macro-condition-process.cpp b/src/macro-core/macro-condition-process.cpp index 007efbfb..5f5fd0fa 100644 --- a/src/macro-core/macro-condition-process.cpp +++ b/src/macro-core/macro-condition-process.cpp @@ -22,6 +22,12 @@ bool MacroConditionProcess::CheckCondition() bool matches = runningProcesses.indexOf(QRegularExpression(proc)) != -1; bool focus = !_focus || isInFocus(proc); + if (IsReferencedInVars()) { + std::string name; + GetForegroundProcessName(name); + SetVariableValue(name); + } + return (equals || matches) && focus; } diff --git a/src/macro-core/macro-condition-process.hpp b/src/macro-core/macro-condition-process.hpp index 8a85dcd0..72abfe0d 100644 --- a/src/macro-core/macro-condition-process.hpp +++ b/src/macro-core/macro-condition-process.hpp @@ -6,7 +6,7 @@ class MacroConditionProcess : public MacroCondition { public: - MacroConditionProcess(Macro *m) : MacroCondition(m) {} + MacroConditionProcess(Macro *m) : MacroCondition(m, true) {} bool CheckCondition(); bool Save(obs_data_t *obj) const; bool Load(obs_data_t *obj);