diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index a129ac59..cb44e5ea 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -893,6 +893,7 @@ void CKeybindManager::moveActiveToWorkspace(std::string args) { auto PSAVEDSIZE = PWINDOW->m_vRealSize.goalv(); auto PSAVEDPOS = PWINDOW->m_vRealPosition.goalv(); + const bool WASFULLSCREEN = PWINDOW->m_bIsFullscreen; g_pLayoutManager->getCurrentLayout()->onWindowRemoved(PWINDOW); @@ -910,15 +911,9 @@ void CKeybindManager::moveActiveToWorkspace(std::string args) { return; } - OLDWORKSPACE->m_bHasFullscreenWindow = false; - PWINDOW->moveToWorkspace(PWORKSPACE->m_iID); PWINDOW->m_iMonitorID = PWORKSPACE->m_iMonitorID; - if (PWINDOW->m_bIsFullscreen) { - g_pCompositor->setWindowFullscreen(PWINDOW, false, FULLSCREEN_FULL); - } - if (PWORKSPACE->m_bHasFullscreenWindow) { g_pCompositor->setWindowFullscreen(g_pCompositor->getFullscreenWindowOnWorkspace(PWORKSPACE->m_iID), false, FULLSCREEN_FULL); } @@ -935,6 +930,10 @@ void CKeybindManager::moveActiveToWorkspace(std::string args) { PWINDOW->m_vPosition = PWINDOW->m_vRealPosition.vec(); } + if (WASFULLSCREEN) { + g_pCompositor->setWindowFullscreen(PWINDOW, true, OLDWORKSPACE->m_efFullscreenMode); + } + // undo the damage if we are moving to the special workspace if (WORKSPACEID == SPECIAL_WORKSPACE_ID) { changeworkspace("[internal]" + std::to_string(OLDWORKSPACE->m_iID));