diff options
| author | Maxim Baz <github@maximbaz.com> | 2023-01-13 21:58:14 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-13 21:58:14 +0100 |
| commit | 7729fa9ac939cc9888a3c7551694047faba98f04 (patch) | |
| tree | 301b2be3855fab6ef9684b289004a9c7c54aba2b /src/layout/MasterLayout.cpp | |
| parent | 9c77415cda40eb334dd9306c504c0003dc14b53f (diff) | |
master layout: remember size & pos of floating windows on fullscreen 1 (#1374)
Diffstat (limited to 'src/layout/MasterLayout.cpp')
| -rw-r--r-- | src/layout/MasterLayout.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/layout/MasterLayout.cpp b/src/layout/MasterLayout.cpp index 4ea37582..53b9c76b 100644 --- a/src/layout/MasterLayout.cpp +++ b/src/layout/MasterLayout.cpp @@ -532,8 +532,8 @@ void CHyprMasterLayout::fullscreenRequestForWindow(CWindow* pWindow, eFullscreen applyNodeDataToWindow(PNODE); else { // get back its' dimensions from position and size - pWindow->m_vRealPosition = pWindow->m_vPosition; - pWindow->m_vRealSize = pWindow->m_vSize; + pWindow->m_vRealPosition = pWindow->m_vLastFloatingPosition; + pWindow->m_vRealSize = pWindow->m_vLastFloatingSize; } } else { // if it now got fullscreen, make it fullscreen @@ -542,8 +542,10 @@ void CHyprMasterLayout::fullscreenRequestForWindow(CWindow* pWindow, eFullscreen // save position and size if floating if (pWindow->m_bIsFloating) { - pWindow->m_vPosition = pWindow->m_vRealPosition.vec(); - pWindow->m_vSize = pWindow->m_vRealSize.vec(); + pWindow->m_vLastFloatingSize = pWindow->m_vRealSize.goalv(); + pWindow->m_vLastFloatingPosition = pWindow->m_vRealPosition.goalv(); + pWindow->m_vPosition = pWindow->m_vRealPosition.goalv(); + pWindow->m_vSize = pWindow->m_vRealSize.goalv(); } // apply new pos and size being monitors' box |
