summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
diff options
context:
space:
mode:
authorCharles Taylor <taylorc822@gmail.com>2022-08-21 20:47:56 +1000
committerCharles Taylor <taylorc822@gmail.com>2022-08-21 20:47:56 +1000
commit9ee42836d5e2c707f7cf203628a0ae530d59c5cd (patch)
tree464ea38528972799bd88a442398756564e7900e2 /src/managers/KeybindManager.cpp
parentd6ff7e40cfde6a8484b50911358032b4c53c721c (diff)
add general:allow_workspace_cycles option
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