diff options
| author | vaxerski <vaxry@vaxry.net> | 2023-11-03 12:19:23 +0000 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2023-11-03 12:19:23 +0000 |
| commit | 0f6e53079864d411aa2de3262ba4c01eeeec4f5b (patch) | |
| tree | c0a2d620b0a29e2ffa4eba98d8424f693fe707fa /src/layout/MasterLayout.cpp | |
| parent | 88b47dfa833db2d230a2d6e6bbbf92c69afbdc28 (diff) | |
layout: better storage for no fullscreen checks var
fixes #3731
Diffstat (limited to 'src/layout/MasterLayout.cpp')
| -rw-r--r-- | src/layout/MasterLayout.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/layout/MasterLayout.cpp b/src/layout/MasterLayout.cpp index b5917eeb..be8da75e 100644 --- a/src/layout/MasterLayout.cpp +++ b/src/layout/MasterLayout.cpp @@ -566,7 +566,7 @@ void CHyprMasterLayout::calculateWorkspace(const int& ws) { } } -void CHyprMasterLayout::applyNodeDataToWindow(SMasterNodeData* pNode, bool force) { +void CHyprMasterLayout::applyNodeDataToWindow(SMasterNodeData* pNode) { CMonitor* PMONITOR = nullptr; if (g_pCompositor->isWorkspaceSpecial(pNode->workspaceID)) { @@ -596,7 +596,7 @@ void CHyprMasterLayout::applyNodeDataToWindow(SMasterNodeData* pNode, bool force // if user specified them in config const auto WORKSPACERULE = g_pConfigManager->getWorkspaceRuleFor(g_pCompositor->getWorkspaceByID(PWINDOW->m_iWorkspaceID)); - if (PWINDOW->m_bIsFullscreen && !force) + if (PWINDOW->m_bIsFullscreen && !pNode->ignoreFullscreenChecks) return; PWINDOW->updateSpecialRenderData(); @@ -885,14 +885,15 @@ void CHyprMasterLayout::fullscreenRequestForWindow(CWindow* pWindow, eFullscreen // To keep consistent with the settings without C+P code SMasterNodeData fakeNode; - fakeNode.pWindow = pWindow; - fakeNode.position = PMONITOR->vecPosition + PMONITOR->vecReservedTopLeft; - fakeNode.size = PMONITOR->vecSize - PMONITOR->vecReservedTopLeft - PMONITOR->vecReservedBottomRight; - fakeNode.workspaceID = pWindow->m_iWorkspaceID; - pWindow->m_vPosition = fakeNode.position; - pWindow->m_vSize = fakeNode.size; - - applyNodeDataToWindow(&fakeNode, true); + fakeNode.pWindow = pWindow; + fakeNode.position = PMONITOR->vecPosition + PMONITOR->vecReservedTopLeft; + fakeNode.size = PMONITOR->vecSize - PMONITOR->vecReservedTopLeft - PMONITOR->vecReservedBottomRight; + fakeNode.workspaceID = pWindow->m_iWorkspaceID; + pWindow->m_vPosition = fakeNode.position; + pWindow->m_vSize = fakeNode.size; + fakeNode.ignoreFullscreenChecks = true; + + applyNodeDataToWindow(&fakeNode); } } |
