summaryrefslogtreecommitdiff
path: root/src/config/ConfigManager.cpp
diff options
context:
space:
mode:
authorthejch <66577496+thejch@users.noreply.github.com>2024-03-30 17:49:53 -0700
committerGitHub <noreply@github.com>2024-03-31 00:49:53 +0000
commit5e8c25d498ed5cb7852ae74a876b0c138a62d59d (patch)
tree904e8d5f5c9fa10e540b02d229f0f3a83f3dfc0a /src/config/ConfigManager.cpp
parent1aed45f61d2dd48943a63cabf7bd77c19a59cf62 (diff)
core: match all workspace rules instead of the first one only (#5340)
Diffstat (limited to 'src/config/ConfigManager.cpp')
-rw-r--r--src/config/ConfigManager.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
index 1229e80b..df2006ae 100644
--- a/src/config/ConfigManager.cpp
+++ b/src/config/ConfigManager.cpp
@@ -956,11 +956,13 @@ SMonitorRule CConfigManager::getMonitorRuleFor(const CMonitor& PMONITOR) {
return SMonitorRule{.name = "", .resolution = Vector2D(0, 0), .offset = Vector2D(-INT32_MAX, -INT32_MAX), .scale = -1}; // 0, 0 is preferred and -1, -1 is auto
}
-SWorkspaceRule CConfigManager::getWorkspaceRuleFor(CWorkspace* pWorkspace) {
- const auto IT = std::find_if(m_dWorkspaceRules.begin(), m_dWorkspaceRules.end(), [&](const auto& other) { return pWorkspace->matchesStaticSelector(other.workspaceString); });
- if (IT == m_dWorkspaceRules.end())
- return SWorkspaceRule{};
- return *IT;
+std::vector<SWorkspaceRule> CConfigManager::getWorkspaceRulesFor(CWorkspace* pWorkspace) {
+ std::vector<SWorkspaceRule> results;
+ for (auto& rule : m_dWorkspaceRules) {
+ if (pWorkspace->matchesStaticSelector(rule.workspaceString))
+ results.push_back(rule);
+ }
+ return results;
}
std::vector<SWindowRule> CConfigManager::getMatchingRules(CWindow* pWindow, bool dynamic, bool shadowExec) {