diff options
author | vaxerski <[email protected]> | 2022-11-20 18:50:22 +0000 |
---|---|---|
committer | vaxerski <[email protected]> | 2022-11-20 18:50:27 +0000 |
commit | be03a6186c22f915d3d92df71d2e74c64e816245 (patch) | |
tree | 8b25044bad49539590f29b1e8a49b3e43bfe06fa | |
parent | 41a8975bd12f42732955ffc56c4a371f3c925205 (diff) | |
download | Hyprland-be03a6186c22f915d3d92df71d2e74c64e816245.tar.gz Hyprland-be03a6186c22f915d3d92df71d2e74c64e816245.zip |
fix invisible windows on moving fullscreen out
-rw-r--r-- | src/managers/KeybindManager.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
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)); |