summaryrefslogtreecommitdiff
path: root/src/helpers/AsyncDialogBox.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2026-04-28 15:42:09 +0100
committerVaxry <43317083+vaxerski@users.noreply.github.com>2026-04-28 16:52:41 +0100
commitcbefb357a57ce5f6dd161a400a5867609022ee66 (patch)
tree446a9491200c0d495ab82562247d96b4e1af5b99 /src/helpers/AsyncDialogBox.cpp
parent98fbbafef78057c818fb02b15c27e38ad2f5b5bc (diff)
desktop/windowRule: use variants for storage internally
Improves storage: less dynamic parsing, immediate config errors, faster.
Diffstat (limited to 'src/helpers/AsyncDialogBox.cpp')
-rw-r--r--src/helpers/AsyncDialogBox.cpp11
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));
}