diff options
| author | scorpion-26 <58082714+scorpion-26@users.noreply.github.com> | 2023-01-17 13:20:10 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-17 13:20:10 +0100 |
| commit | c31c627cf85ea4fd40c1647c84d89b5e6f186785 (patch) | |
| tree | 4b39e6a553566141eceb14a1cd97c7645eb5b9f7 /src/events/Windows.cpp | |
| parent | f14e8088478bf1e80e02a213a23c528fe32d3b91 (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.cpp | 14 |
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; |
