diff options
| author | Vaxry <vaxry@vaxry.net> | 2025-04-01 00:25:09 +0100 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2025-04-01 00:25:09 +0100 |
| commit | d1a59ec39eb4c0d6a7d3d38a26f8924e6bca5cef (patch) | |
| tree | ac486ef804d46f58cea98312b4527fb25793f43b /src/render/Renderer.cpp | |
| parent | 4c987b20e28362410d0c9f9a37bafd6f128b0a2c (diff) | |
renderer: render tiled fading out above other tiled windows
fixes #9717
closes #9796
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 8a8fd27a..dca76f63 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -360,7 +360,7 @@ void CHyprRenderer::renderWorkspaceWindows(PHLMONITOR pMonitor, PHLWORKSPACE pWo EMIT_HOOK_EVENT("render", RENDER_PRE_WINDOWS); - std::vector<PHLWINDOWREF> windows; + std::vector<PHLWINDOWREF> windows, tiledFadingOut; windows.reserve(g_pCompositor->m_vWindows.size()); for (auto const& w : g_pCompositor->m_vWindows) { @@ -390,6 +390,13 @@ void CHyprRenderer::renderWorkspaceWindows(PHLMONITOR pMonitor, PHLWORKSPACE pWo continue; } + // render tiled fading out after others + if (w->m_bFadingOut) { + tiledFadingOut.emplace_back(w); + w.reset(); + continue; + } + // render the bad boy renderWindow(w.lock(), pMonitor, time, true, RENDER_PASS_MAIN); w.reset(); @@ -400,6 +407,11 @@ void CHyprRenderer::renderWorkspaceWindows(PHLMONITOR pMonitor, PHLWORKSPACE pWo lastWindow.reset(); + // render tiled windows that are fading out after other tiled to not hide them behind + for (auto& w : tiledFadingOut) { + renderWindow(w.lock(), pMonitor, time, true, RENDER_PASS_MAIN); + } + // Non-floating popup for (auto& w : windows) { if (!w) |
