summaryrefslogtreecommitdiff
path: root/src/config/ConfigManager.cpp
diff options
context:
space:
mode:
authorItsOhen <TNordfeldt@gmail.com>2025-09-29 20:10:34 +0200
committerGitHub <noreply@github.com>2025-09-29 20:10:34 +0200
commit38c1e72c9d81fcdad8f173e06102a5da18836230 (patch)
treeaad2d03d0ab45280e313b75451a0d125be86ddaf /src/config/ConfigManager.cpp
parent09596725910aab2a9defed250348aebeee40f842 (diff)
rules: fix some monitor rules (#11873)
Diffstat (limited to 'src/config/ConfigManager.cpp')
-rw-r--r--src/config/ConfigManager.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
index 206de193..1ff2d293 100644
--- a/src/config/ConfigManager.cpp
+++ b/src/config/ConfigManager.cpp
@@ -2669,16 +2669,17 @@ std::optional<std::string> CConfigManager::handleWindowRule(const std::string& c
bool parsingParams = false;
for (const auto& varStr : VARLIST) {
- std::string_view var = varStr;
- auto sep = var.find(':');
- std::string_view key = (sep != std::string_view::npos) ? var.substr(0, sep) : var;
+ std::string_view var = varStr;
+ auto sep = var.find(':');
+ std::string_view key = (sep != std::string_view::npos) ? var.substr(0, sep) : var;
+ bool isParam = (sep != std::string_view::npos && !(key.starts_with("workspace ") || (key.starts_with("monitor ")) || key.ends_with("plugin")));
if (!parsingParams) {
- // Don't be alarmed, ends_with is a single memcmp, i went and checked.
- if (sep == std::string_view::npos || key.ends_with("plugin") || key.ends_with("special")) {
+ if (!isParam) {
tokens.emplace_back(var);
continue;
}
+
parsingParams = true;
}
@@ -2964,7 +2965,7 @@ std::optional<std::string> CConfigManager::handleWorkspaceRules(const std::strin
CHECK_OR_THROW(configStringToInt(rule.substr(delim + 11)))
wsRule.isPersistent = *X;
} else if ((delim = rule.find("defaultName:")) != std::string::npos)
- wsRule.defaultName = rule.substr(delim + 12);
+ wsRule.defaultName = trim(rule.substr(delim + 12));
else if ((delim = rule.find(ruleOnCreatedEmpty)) != std::string::npos) {
CHECK_OR_THROW(cleanCmdForWorkspace(name, rule.substr(delim + ruleOnCreatedEmptyLen)))
wsRule.onCreatedEmptyRunCmd = *X;