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.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index 3b0a6678..d6cffd41 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -1394,7 +1394,18 @@ void CKeybindManager::focusMonitor(std::string arg) {
if (!PMONITOR || PMONITOR == g_pCompositor->m_pLastMonitor)
return;
+ const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(g_pCompositor->m_pLastMonitor->activeWorkspace);
+
changeworkspace("[internal]" + std::to_string(PMONITOR->activeWorkspace));
+
+ // remember last workspace (internal calls don't preserve it)
+
+ const auto PNEWWORKSPACE = g_pCompositor->getWorkspaceByID(PMONITOR->activeWorkspace);
+ if (PNEWWORKSPACE == PWORKSPACE)
+ return;
+
+ PNEWWORKSPACE->m_sPrevWorkspace.iID = PWORKSPACE->m_iID;
+ PNEWWORKSPACE->m_sPrevWorkspace.name = PWORKSPACE->m_szName;
}
void CKeybindManager::moveCursorToCorner(std::string arg) {