summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2022-09-29 10:20:12 +0100
committervaxerski <vaxry@vaxry.net>2022-09-29 10:20:17 +0100
commitead0e744714891f9b56469347f43b7e4e334f441 (patch)
tree0df52179bc64de2a22aceb99ea4c2b335fbbb29c /src/Compositor.cpp
parentdcf5e34bfac6c7a37e27903fbfba09eb84b48ef4 (diff)
handle maximize toplevel request
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index f670a643..e3392483 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -1616,6 +1616,15 @@ void CCompositor::setWindowFullscreen(CWindow* pWindow, bool on, eFullscreenMode
return;
}
+ const auto PMONITOR = getMonitorFromID(pWindow->m_iMonitorID);
+
+ const auto PWORKSPACE = getWorkspaceByID(pWindow->m_iWorkspaceID);
+
+ if (PWORKSPACE->m_bHasFullscreenWindow && on) {
+ Debug::log(LOG, "Rejecting fullscreen ON on a fullscreen workspace");
+ return;
+ }
+
g_pLayoutManager->getCurrentLayout()->fullscreenRequestForWindow(pWindow, mode, on);
g_pXWaylandManager->setWindowFullscreen(pWindow, pWindow->m_bIsFullscreen && mode == FULLSCREEN_FULL);
@@ -1629,8 +1638,6 @@ void CCompositor::setWindowFullscreen(CWindow* pWindow, bool on, eFullscreenMode
}
}
- const auto PMONITOR = getMonitorFromID(pWindow->m_iMonitorID);
-
for (auto& ls : PMONITOR->m_aLayerSurfaceLists[ZWLR_LAYER_SHELL_V1_LAYER_TOP]) {
if (!ls->fadingOut)
ls->alpha = pWindow->m_bIsFullscreen && mode == FULLSCREEN_FULL ? 0.f : 255.f;