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 ba297540..9095ccf8 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -610,16 +610,20 @@ void CKeybindManager::changeworkspace(std::string args) {
internal = true;
} else if (args.find("previous") == 0) {
- const auto PCURRENTWORKSPACE = g_pCompositor->getWorkspaceByID(
- g_pCompositor->m_pLastMonitor->activeWorkspace);
+ const auto PCURRENTWORKSPACE = g_pCompositor->getWorkspaceByID(g_pCompositor->m_pLastMonitor->activeWorkspace);
// Do nothing if there's no previous workspace, otherwise switch to it.
if (PCURRENTWORKSPACE->m_iPrevWorkspaceID == -1) {
Debug::log(LOG, "No previous workspace to change to");
return;
- }
- else {
+ } else {
workspaceToChangeTo = PCURRENTWORKSPACE->m_iPrevWorkspaceID;
+
+ if (const auto PWORKSPACETOCHANGETO = g_pCompositor->getWorkspaceByID(workspaceToChangeTo); PWORKSPACETOCHANGETO)
+ workspaceName = PWORKSPACETOCHANGETO->m_szName;
+ else
+ workspaceName = std::to_string(workspaceToChangeTo);
+
isSwitchingToPrevious = true;
// If the previous workspace ID isn't reset, cycles can form when continually going