summaryrefslogtreecommitdiff
path: root/src/layout/MasterLayout.cpp
diff options
context:
space:
mode:
authorMaxim Baz <github@maximbaz.com>2023-01-13 21:58:14 +0100
committerGitHub <noreply@github.com>2023-01-13 21:58:14 +0100
commit7729fa9ac939cc9888a3c7551694047faba98f04 (patch)
tree301b2be3855fab6ef9684b289004a9c7c54aba2b /src/layout/MasterLayout.cpp
parent9c77415cda40eb334dd9306c504c0003dc14b53f (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.cpp10
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