mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-08-07 23:51:55 -07:00
fix invisible windows on moving fullscreen out
This commit is contained in:
@@ -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));
|
||||||
|
Reference in New Issue
Block a user