diff options
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index c9dada6d..7eda6296 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -59,12 +59,24 @@ bool shouldRenderWindow(CWindow* pWindow, SMonitor* pMonitor) { } void CHyprRenderer::renderWorkspaceWithFullscreenWindow(SMonitor* pMonitor, SWorkspace* pWorkspace, timespec* time) { + CWindow* pWorkspaceWindow = nullptr; + for (auto& w : g_pCompositor->m_lWindows) { if (w.m_iWorkspaceID != pWorkspace->ID || !w.m_bIsFullscreen) continue; // found it! renderWindow(&w, pMonitor, time, false); + + pWorkspaceWindow = &w; + } + + // then render windows over fullscreen + for (auto& w : g_pCompositor->m_lWindows) { + if (w.m_iWorkspaceID != pWorkspaceWindow->m_iWorkspaceID || !w.m_bCreatedOverFullscreen || !w.m_bIsMapped) + continue; + + renderWindow(&w, pMonitor, time, true); } } |
