diff options
| author | Vaxry <vaxry@vaxry.net> | 2023-12-11 22:58:40 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2023-12-11 22:58:51 +0000 |
| commit | ea7569d7e0941d19f5f469a5fbb79bc0fa62b935 (patch) | |
| tree | 66cbdeb4cea529b9226f64d3fd4a911f3a1bffbc /src/config/ConfigManager.cpp | |
| parent | e53134ca904e47a24191ea028c019ac9728b7dad (diff) | |
config: improve layoutopt handling for workspacerules
Diffstat (limited to 'src/config/ConfigManager.cpp')
| -rw-r--r-- | src/config/ConfigManager.cpp | 16 |
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; |
