diff options
| author | Vaxry <vaxry@vaxry.net> | 2026-04-04 15:08:59 +0100 |
|---|---|---|
| committer | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2026-04-04 11:53:49 -0400 |
| commit | af4e196583e11a627485f5fb6220b7eb01e0e7a4 (patch) | |
| tree | a582de7fc6f31bda901d9a2bfef7631e6abe4728 /src/render/Renderer.cpp | |
| parent | e40857fc8ac93961769f6ac3e5776ab9b5b5ad32 (diff) | |
renderer: simplify renderWorkspaceWindowsFullscreen
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 36a10123..9d9a4ddb 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -317,7 +317,9 @@ void IHyprRenderer::renderWorkspaceWindowsFullscreen(PHLMONITOR pMonitor, PHLWOR Event::bus()->m_events.render.stage.emit(RENDER_PRE_WINDOWS); - // loop over the tiled windows that are fading out + // pre-filter renderable windows once for the tiled + floating passes + std::vector<PHLWINDOW> windows; + windows.reserve(g_pCompositor->m_windows.size()); for (auto const& w : g_pCompositor->m_windows) { if (!shouldRenderWindow(w, pMonitor)) continue; @@ -325,7 +327,15 @@ void IHyprRenderer::renderWorkspaceWindowsFullscreen(PHLMONITOR pMonitor, PHLWOR if (w->m_alpha->value() == 0.f) continue; - if (w->isFullscreen() || w->m_isFloating) + if (w->isFullscreen()) + continue; + + windows.emplace_back(w); + } + + // tiled windows that are fading out + for (auto const& w : windows) { + if (w->m_isFloating) continue; if (pWorkspace->m_isSpecialWorkspace != w->onSpecialWorkspace()) @@ -335,14 +345,8 @@ void IHyprRenderer::renderWorkspaceWindowsFullscreen(PHLMONITOR pMonitor, PHLWOR } // and floating ones too - for (auto const& w : g_pCompositor->m_windows) { - if (!shouldRenderWindow(w, pMonitor)) - continue; - - if (w->m_alpha->value() == 0.f) - continue; - - if (w->isFullscreen() || !w->m_isFloating) + for (auto const& w : windows) { + if (!w->m_isFloating) continue; if (w->m_monitor == pWorkspace->m_monitor && pWorkspace->m_isSpecialWorkspace != w->onSpecialWorkspace()) |
