diff --git a/src/windowManager.cpp b/src/windowManager.cpp index 1d2b5a5..c531a62 100644 --- a/src/windowManager.cpp +++ b/src/windowManager.cpp @@ -1454,6 +1454,14 @@ void CWindowManager::moveActiveWindowToWorkspace(int workspace) { const auto SAVEDFLOATSTATUS = PWINDOW->getIsFloating(); const auto SAVEDDRAWABLE = PWINDOW->getDrawable(); + // remove current workspace's fullscreen status if fullscreen + if (PWINDOW->getFullscreen()) { + const auto PWORKSPACE = getWorkspaceByID(PWINDOW->getWorkspaceID()); + if (PWORKSPACE) { + PWORKSPACE->setHasFullscreenWindow(false); + } + } + fixWindowOnClose(PWINDOW); // deque reallocated LastWindow = SAVEDDRAWABLE; @@ -1491,6 +1499,13 @@ void CWindowManager::moveActiveWindowToWorkspace(int workspace) { else Events::remapWindow(PWINDOW->getDrawable(), false, NEWMONITOR); + // fix fullscreen status + const auto PWORKSPACE = getWorkspaceByID(workspace); + if (PWORKSPACE) { + // Should NEVER be false but let's be sure + PWORKSPACE->setHasFullscreenWindow(PWINDOW->getFullscreen()); + } + PWINDOW->setDefaultSize(SAVEDDEFAULTSIZE); }