diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-07-28 16:33:45 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-07-28 16:33:45 +0200 |
| commit | 0e2038fedf8b01fb2cc3e23a71b429bba003d967 (patch) | |
| tree | 47aff7f13068c9233bd609a18696415b2a609997 /src/render/Renderer.cpp | |
| parent | 6d35d642ea40d365ca81e5e0c28429fc5a9b1b8f (diff) | |
minor fullscreen anim fixes
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index bb31d307..09f9bd28 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -76,10 +76,16 @@ bool CHyprRenderer::shouldRenderWindow(CWindow* pWindow, CMonitor* pMonitor) { return false; // now check if it has the same workspace + const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(pWindow->m_iWorkspaceID); + + if (PWORKSPACE->m_iMonitorID == pMonitor->ID) { + if (!(!PWORKSPACE->m_bHasFullscreenWindow || pWindow->m_bIsFullscreen || (pWindow->m_bIsFloating && pWindow->m_bCreatedOverFullscreen))) + return false; + } + if (pWindow->m_iWorkspaceID == pMonitor->activeWorkspace) return true; - const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(pWindow->m_iWorkspaceID); // 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; @@ -122,7 +128,9 @@ void CHyprRenderer::renderWorkspaceWithFullscreenWindow(CMonitor* pMonitor, CWor continue; } - // found it! + if (w->m_iWorkspaceID == pMonitor->activeWorkspace && !w->m_bIsFullscreen) + continue; + renderWindow(w.get(), pMonitor, time, pWorkspace->m_efFullscreenMode != FULLSCREEN_FULL, RENDER_PASS_ALL); pWorkspaceWindow = w.get(); |
