summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/managers/KeybindManager.cpp')
-rw-r--r--src/managers/KeybindManager.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index 45af02a0..ab22d98f 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -476,8 +476,10 @@ void CKeybindManager::changeworkspace(std::string args) {
workspaceToChangeTo = P_CURRENT_WORKSPACE->m_iPrevWorkspaceID;
isSwitchingToPrevious = true;
- // TODO: Add support for cycles
- P_CURRENT_WORKSPACE->m_iPrevWorkspaceID = -1;
+ // If the previous workspace ID isn't reset, cycles can form when continually going
+ // to the previous workspace again and again.
+ if (!g_pConfigManager->getConfigValuePtr("general:allow_workspace_cycles")->intValue)
+ P_CURRENT_WORKSPACE->m_iPrevWorkspaceID = -1;
}
} else {
workspaceToChangeTo = getWorkspaceIDFromString(args, workspaceName);
@@ -499,8 +501,10 @@ void CKeybindManager::changeworkspace(std::string args) {
workspaceToChangeTo = P_CURRENT_WORKSPACE->m_iPrevWorkspaceID;
isSwitchingToPrevious = true;
- // TODO: Add support for cycles
- P_CURRENT_WORKSPACE->m_iPrevWorkspaceID = -1;
+ // If the previous workspace ID isn't reset, cycles can form when continually going
+ // to the previous workspace again and again.
+ if (!g_pConfigManager->getConfigValuePtr("general:allow_workspace_cycles")->intValue)
+ P_CURRENT_WORKSPACE->m_iPrevWorkspaceID = -1;
}
// remove constraints