fix invisible windows on moving fullscreen out

This commit is contained in:
vaxerski 2022-11-20 18:50:22 +00:00
parent 41a8975bd1
commit be03a6186c

View file

@ -893,6 +893,7 @@ void CKeybindManager::moveActiveToWorkspace(std::string args) {
auto PSAVEDSIZE = PWINDOW->m_vRealSize.goalv(); auto PSAVEDSIZE = PWINDOW->m_vRealSize.goalv();
auto PSAVEDPOS = PWINDOW->m_vRealPosition.goalv(); auto PSAVEDPOS = PWINDOW->m_vRealPosition.goalv();
const bool WASFULLSCREEN = PWINDOW->m_bIsFullscreen;
g_pLayoutManager->getCurrentLayout()->onWindowRemoved(PWINDOW); g_pLayoutManager->getCurrentLayout()->onWindowRemoved(PWINDOW);
@ -910,15 +911,9 @@ void CKeybindManager::moveActiveToWorkspace(std::string args) {
return; return;
} }
OLDWORKSPACE->m_bHasFullscreenWindow = false;
PWINDOW->moveToWorkspace(PWORKSPACE->m_iID); PWINDOW->moveToWorkspace(PWORKSPACE->m_iID);
PWINDOW->m_iMonitorID = PWORKSPACE->m_iMonitorID; PWINDOW->m_iMonitorID = PWORKSPACE->m_iMonitorID;
if (PWINDOW->m_bIsFullscreen) {
g_pCompositor->setWindowFullscreen(PWINDOW, false, FULLSCREEN_FULL);
}
if (PWORKSPACE->m_bHasFullscreenWindow) { if (PWORKSPACE->m_bHasFullscreenWindow) {
g_pCompositor->setWindowFullscreen(g_pCompositor->getFullscreenWindowOnWorkspace(PWORKSPACE->m_iID), false, FULLSCREEN_FULL); 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(); 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 // undo the damage if we are moving to the special workspace
if (WORKSPACEID == SPECIAL_WORKSPACE_ID) { if (WORKSPACEID == SPECIAL_WORKSPACE_ID) {
changeworkspace("[internal]" + std::to_string(OLDWORKSPACE->m_iID)); changeworkspace("[internal]" + std::to_string(OLDWORKSPACE->m_iID));