diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2022-08-18 19:51:37 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-18 19:51:37 +0200 |
| commit | ece3ac97f932b1f39314cf63ec8e9abb5172104e (patch) | |
| tree | 1004070fcf7c19188d3251c232202b5c8bf73247 /src/render/Renderer.cpp | |
| parent | 9b62328b22fbd1ca20ac96cca0fcf21906d42aa6 (diff) | |
| parent | eca6e53bd787437c98cb1e47b27a73e57db84b36 (diff) | |
Merge pull request #543 from Roger-Roger-debug/main
More fullscreen animation fixes
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index cc21c1bb..71440dc7 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -79,16 +79,22 @@ bool CHyprRenderer::shouldRenderWindow(CWindow* pWindow, CMonitor* pMonitor) { const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(pWindow->m_iWorkspaceID); if (PWORKSPACE && PWORKSPACE->m_iMonitorID == pMonitor->ID) { - if (!(!PWORKSPACE->m_bHasFullscreenWindow || pWindow->m_bIsFullscreen || (pWindow->m_bIsFloating && pWindow->m_bCreatedOverFullscreen))) - return false; + if (PWORKSPACE->m_vRenderOffset.isBeingAnimated() || PWORKSPACE->m_fAlpha.isBeingAnimated()) { + return true; + } else { + if (!(!PWORKSPACE->m_bHasFullscreenWindow || pWindow->m_bIsFullscreen || (pWindow->m_bIsFloating && pWindow->m_bCreatedOverFullscreen))) + return false; + } } if (pWindow->m_iWorkspaceID == pMonitor->activeWorkspace) return true; - // if not, check if it maybe is active on a different monitor. vvv might be animation in progress - if (g_pCompositor->isWorkspaceVisible(pWindow->m_iWorkspaceID) || (PWORKSPACE && PWORKSPACE->m_iMonitorID == pMonitor->ID && PWORKSPACE->m_bForceRendering) || (PWORKSPACE && PWORKSPACE->m_iMonitorID == pMonitor->ID && (PWORKSPACE->m_vRenderOffset.isBeingAnimated() || PWORKSPACE->m_fAlpha.isBeingAnimated()))) - return true; + // if not, check if it maybe is active on a different monitor. + if (g_pCompositor->isWorkspaceVisible(pWindow->m_iWorkspaceID) || + (PWORKSPACE && PWORKSPACE->m_iMonitorID == pMonitor->ID && PWORKSPACE->m_bForceRendering) || // vvvv might be in animation progress vvvvv + (PWORKSPACE && PWORKSPACE->m_iMonitorID == pMonitor->ID && (PWORKSPACE->m_vRenderOffset.isBeingAnimated() || PWORKSPACE->m_fAlpha.isBeingAnimated()))) + return !pWindow->m_bIsFullscreen; // Do not draw fullscreen windows on other monitors if (pMonitor->specialWorkspaceOpen && pWindow->m_iWorkspaceID == SPECIAL_WORKSPACE_ID) return true; |
