From 7afb7c85a74fe3beac634f124cba5a971cb54ca2 Mon Sep 17 00:00:00 2001 From: vaxerski Date: Wed, 11 Jan 2023 13:40:15 +0100 Subject: [PATCH] handle fullscreen requests on maximized windows --- src/events/Windows.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index 50f58cfc..cbee36fc 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -761,7 +761,13 @@ void Events::listener_fullscreenWindow(void* owner, void* data) { if (!PWINDOW->m_bIsX11) { const auto REQUESTED = &PWINDOW->m_uSurface.xdg->toplevel->requested; - if (REQUESTED->fullscreen != PWINDOW->m_bIsFullscreen && !PWINDOW->m_bFakeFullscreenState) + if (REQUESTED->fullscreen && PWINDOW->m_bIsFullscreen) { + const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(PWINDOW->m_iWorkspaceID); + if (PWORKSPACE->m_efFullscreenMode != FULLSCREEN_FULL) { + g_pCompositor->setWindowFullscreen(PWINDOW, false, FULLSCREEN_MAXIMIZED); + g_pCompositor->setWindowFullscreen(PWINDOW, true, FULLSCREEN_FULL); + } + } else if (REQUESTED->fullscreen != PWINDOW->m_bIsFullscreen && !PWINDOW->m_bFakeFullscreenState) g_pCompositor->setWindowFullscreen(PWINDOW, REQUESTED->fullscreen, FULLSCREEN_FULL); requestedFullState = REQUESTED->fullscreen;