From 7729fa9ac939cc9888a3c7551694047faba98f04 Mon Sep 17 00:00:00 2001 From: Maxim Baz Date: Fri, 13 Jan 2023 21:58:14 +0100 Subject: [PATCH] master layout: remember size & pos of floating windows on fullscreen 1 (#1374) --- src/layout/MasterLayout.cpp | 10 ++++++---- 1 file 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