summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
authorArnaud <arnaudma.code@gmail.com>2025-08-13 09:45:34 +0200
committerGitHub <noreply@github.com>2025-08-13 08:45:34 +0100
commitaa6a78f0a4e17c49ed4aff8b58c3f7ec7ef0408f (patch)
tree0467f52be27e283a489edff09009a78a7fbecb03 /src/Compositor.cpp
parent2b6e2ceb2e66407e80b98015eb9f559f06405b2f (diff)
internal: Ensure unique identifiers for persistent workspaces (#11409)
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index 4d0a917b..3b8fb0a5 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -1727,6 +1727,14 @@ WORKSPACEID CCompositor::getNextAvailableNamedWorkspace() {
lowest = w->m_id;
}
+ // Give priority to persistent workspaces to avoid any conflicts between them.
+ for (auto const& rule : g_pConfigManager->getAllWorkspaceRules()) {
+ if (!rule.isPersistent)
+ continue;
+ if (rule.workspaceId < -1 && rule.workspaceId < lowest)
+ lowest = rule.workspaceId;
+ }
+
return lowest - 1;
}