diff options
| author | Vaxry <vaxry@vaxry.net> | 2026-04-28 15:42:09 +0100 |
|---|---|---|
| committer | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2026-04-28 16:52:41 +0100 |
| commit | cbefb357a57ce5f6dd161a400a5867609022ee66 (patch) | |
| tree | 446a9491200c0d495ab82562247d96b4e1af5b99 /src/helpers | |
| parent | 98fbbafef78057c818fb02b15c27e38ad2f5b5bc (diff) | |
desktop/windowRule: use variants for storage internally
Improves storage: less dynamic parsing, immediate config errors, faster.
Diffstat (limited to 'src/helpers')
| -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)); } |
