From fc37ce4a724101def1befa01b353162830f4393f Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Tue, 20 Dec 2022 23:07:17 +0000 Subject: [PATCH] render pinned windows above floating separately --- src/render/Renderer.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 1196f77e..8ae5a014 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -451,7 +451,25 @@ void CHyprRenderer::renderAllClientsForMonitor(const int& ID, timespec* time) { if (w->isHidden() && !w->m_bIsMapped && !w->m_bFadingOut) continue; - if (!w->m_bIsFloating) + if (!w->m_bIsFloating || w->m_bPinned) + continue; + + if (g_pCompositor->isWorkspaceSpecial(w->m_iWorkspaceID)) + continue; + + if (!shouldRenderWindow(w.get(), PMONITOR)) + continue; + + // render the bad boy + renderWindow(w.get(), PMONITOR, time, true, RENDER_PASS_ALL); + } + + // pinned always above + for (auto& w : g_pCompositor->m_vWindows) { + if (w->isHidden() && !w->m_bIsMapped && !w->m_bFadingOut) + continue; + + if (!w->m_bPinned || !w->m_bIsFloating) continue; if (g_pCompositor->isWorkspaceSpecial(w->m_iWorkspaceID))