keybinds: remember last workspace on focusmonitor

This commit is contained in:
vaxerski 2023-03-16 16:39:40 +00:00
parent 4b52c1e68f
commit 606cb2832a

View file

@ -1394,7 +1394,18 @@ void CKeybindManager::focusMonitor(std::string arg) {
if (!PMONITOR || PMONITOR == g_pCompositor->m_pLastMonitor) if (!PMONITOR || PMONITOR == g_pCompositor->m_pLastMonitor)
return; return;
const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(g_pCompositor->m_pLastMonitor->activeWorkspace);
changeworkspace("[internal]" + std::to_string(PMONITOR->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) { void CKeybindManager::moveCursorToCorner(std::string arg) {