summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2025-04-01 00:25:09 +0100
committerVaxry <vaxry@vaxry.net>2025-04-01 00:25:09 +0100
commitd1a59ec39eb4c0d6a7d3d38a26f8924e6bca5cef (patch)
treeac486ef804d46f58cea98312b4527fb25793f43b /src/render/Renderer.cpp
parent4c987b20e28362410d0c9f9a37bafd6f128b0a2c (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.cpp14
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)