diff options
Diffstat (limited to 'src/helpers/AsyncDialogBox.cpp')
| -rw-r--r-- | src/helpers/AsyncDialogBox.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/helpers/AsyncDialogBox.cpp b/src/helpers/AsyncDialogBox.cpp index 8c2c7cd7..57059275 100644 --- a/src/helpers/AsyncDialogBox.cpp +++ b/src/helpers/AsyncDialogBox.cpp @@ -161,7 +161,12 @@ SP<CAsyncDialogBox> CAsyncDialogBox::lockSelf() { } void CAsyncDialogBox::setExecRule(std::string&& s) { - auto rule = Desktop::Rule::CWindowRule::buildFromExecString(std::move(s)); - m_execRuleToken = rule->execToken(); - Desktop::Rule::ruleEngine()->registerRule(std::move(rule)); + auto rule = Desktop::Rule::CWindowRule::buildFromExecString(std::move(s)); + if (!rule) { + Log::logger->log(Log::ERR, "CAsyncDialogBox: failed to parse exec rule: {}", rule.error()); + return; + } + + m_execRuleToken = (*rule)->execToken(); + Desktop::Rule::ruleEngine()->registerRule(std::move(*rule)); } |
