diff options
| author | Vaxry <vaxry@vaxry.net> | 2023-10-19 16:04:48 +0100 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2023-10-19 16:04:59 +0100 |
| commit | 386708563c3d9d85ffd60b4eeb6c767d29f948db (patch) | |
| tree | f21ed1cf03afbfff324f05ce5c9b2eb15994dae3 /src/config/ConfigManager.cpp | |
| parent | ba5f1d87838978ae92d4989545a083e28ef58d6f (diff) | |
workspacerules: search for special properly
fixes #3537
Diffstat (limited to 'src/config/ConfigManager.cpp')
| -rw-r--r-- | src/config/ConfigManager.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 2c3f6474..f0961aa0 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -1850,7 +1850,10 @@ SMonitorRule CConfigManager::getMonitorRuleFor(const std::string& name, const st SWorkspaceRule CConfigManager::getWorkspaceRuleFor(CWorkspace* pWorkspace) { const auto WORKSPACEIDSTR = std::to_string(pWorkspace->m_iID); const auto IT = std::find_if(m_dWorkspaceRules.begin(), m_dWorkspaceRules.end(), [&](const auto& other) { - return other.workspaceName == pWorkspace->m_szName || (pWorkspace->m_iID > 0 && WORKSPACEIDSTR == other.workspaceName); + return other.workspaceName == pWorkspace->m_szName /* name matches */ + || (pWorkspace->m_bIsSpecialWorkspace && other.workspaceName.starts_with("special:") && + other.workspaceName.substr(8) == pWorkspace->m_szName) /* special and special:name */ + || (pWorkspace->m_iID > 0 && WORKSPACEIDSTR == other.workspaceName); /* id matches and workspace is numerical */ }); if (IT == m_dWorkspaceRules.end()) return SWorkspaceRule{}; |
