summaryrefslogtreecommitdiff
path: root/src/config/ConfigManager.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2023-12-11 22:58:40 +0000
committerVaxry <vaxry@vaxry.net>2023-12-11 22:58:51 +0000
commitea7569d7e0941d19f5f469a5fbb79bc0fa62b935 (patch)
tree66cbdeb4cea529b9226f64d3fd4a911f3a1bffbc /src/config/ConfigManager.cpp
parente53134ca904e47a24191ea028c019ac9728b7dad (diff)
config: improve layoutopt handling for workspacerules
Diffstat (limited to 'src/config/ConfigManager.cpp')
-rw-r--r--src/config/ConfigManager.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
index 5eb26efc..75def1dd 100644
--- a/src/config/ConfigManager.cpp
+++ b/src/config/ConfigManager.cpp
@@ -1227,8 +1227,20 @@ void CConfigManager::handleWorkspaceRules(const std::string& command, const std:
wsRule.isPersistent = configStringToInt(rule.substr(delim + 11));
else if ((delim = rule.find(ruleOnCreatedEmtpy)) != std::string::npos)
wsRule.onCreatedEmptyRunCmd = cleanCmdForWorkspace(name, rule.substr(delim + ruleOnCreatedEmtpyLen));
- else if ((delim = rule.find("layoutopt:orientation:")) != std::string::npos)
- wsRule.layoutopts["orientation"] = rule.substr(delim + 22);
+ else if ((delim = rule.find("layoutopt:")) != std::string::npos) {
+ std::string opt = rule.substr(delim + 10);
+ if (!opt.contains(":")) {
+ // invalid
+ Debug::log(ERR, "Invalid workspace rule found: {}", rule);
+ parseError = "Invalid workspace rule found: " + rule;
+ return;
+ }
+
+ std::string val = opt.substr(opt.find(":") + 1);
+ opt = opt.substr(0, opt.find(":"));
+
+ wsRule.layoutopts[opt] = val;
+ }
};
size_t pos = 0;