summaryrefslogtreecommitdiff
path: root/src/layout/MasterLayout.cpp
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2023-11-03 12:19:23 +0000
committervaxerski <vaxry@vaxry.net>2023-11-03 12:19:23 +0000
commit0f6e53079864d411aa2de3262ba4c01eeeec4f5b (patch)
treec0a2d620b0a29e2ffa4eba98d8424f693fe707fa /src/layout/MasterLayout.cpp
parent88b47dfa833db2d230a2d6e6bbbf92c69afbdc28 (diff)
layout: better storage for no fullscreen checks var
fixes #3731
Diffstat (limited to 'src/layout/MasterLayout.cpp')
-rw-r--r--src/layout/MasterLayout.cpp21
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);
}
}