summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
authorscorpion-26 <58082714+scorpion-26@users.noreply.github.com>2023-01-17 13:20:10 +0100
committerGitHub <noreply@github.com>2023-01-17 13:20:10 +0100
commitc31c627cf85ea4fd40c1647c84d89b5e6f186785 (patch)
tree4b39e6a553566141eceb14a1cd97c7645eb5b9f7 /src/events/Windows.cpp
parentf14e8088478bf1e80e02a213a23c528fe32d3b91 (diff)
Don't ignore previous maximise on defullscreen req (#1393)
When defullscreening a window by the apps' request, we would return the window to normal mode, even if the window was previously maximized. Now a defullscreening request honors the previous maximized state.
Diffstat (limited to 'src/events/Windows.cpp')
-rw-r--r--src/events/Windows.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index 86496bfc..caa3972f 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -767,11 +767,23 @@ void Events::listener_fullscreenWindow(void* owner, void* data) {
if (REQUESTED->fullscreen && PWINDOW->m_bIsFullscreen) {
const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(PWINDOW->m_iWorkspaceID);
if (PWORKSPACE->m_efFullscreenMode != FULLSCREEN_FULL) {
+ // Store that we were maximized
+ PWINDOW->m_bWasMaximized = true;
g_pCompositor->setWindowFullscreen(PWINDOW, false, FULLSCREEN_MAXIMIZED);
g_pCompositor->setWindowFullscreen(PWINDOW, true, FULLSCREEN_FULL);
}
- } else if (REQUESTED->fullscreen != PWINDOW->m_bIsFullscreen && !PWINDOW->m_bFakeFullscreenState)
+ else
+ PWINDOW->m_bWasMaximized = false;
+ } else if (REQUESTED->fullscreen != PWINDOW->m_bIsFullscreen && !PWINDOW->m_bFakeFullscreenState) {
g_pCompositor->setWindowFullscreen(PWINDOW, REQUESTED->fullscreen, FULLSCREEN_FULL);
+ if (PWINDOW->m_bWasMaximized && !REQUESTED->fullscreen) {
+ // Was maximized before the fullscreen request, return now back to maximized instead of normal
+ g_pCompositor->setWindowFullscreen(PWINDOW, true, FULLSCREEN_MAXIMIZED);
+ }
+ }
+
+ // Disable the maximize flag when we recieve a de-fullscreen request
+ PWINDOW->m_bWasMaximized &= REQUESTED->fullscreen;
requestedFullState = REQUESTED->fullscreen;