mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-26 08:45:58 +01:00
parent
44accacff9
commit
812a3f6d78
1 changed files with 21 additions and 15 deletions
|
@ -256,6 +256,9 @@ void CHyprRenderer::renderWorkspaceWindows(CMonitor* pMonitor, CWorkspace* pWork
|
||||||
if (!shouldRenderWindow(w.get(), pMonitor, pWorkspace))
|
if (!shouldRenderWindow(w.get(), pMonitor, pWorkspace))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (pWorkspace->m_bIsSpecialWorkspace && w->m_iWorkspaceID != pWorkspace->m_iID)
|
||||||
|
continue;
|
||||||
|
|
||||||
// render active window after all others of this pass
|
// render active window after all others of this pass
|
||||||
if (w.get() == g_pCompositor->m_pLastWindow) {
|
if (w.get() == g_pCompositor->m_pLastWindow) {
|
||||||
lastWindow = w.get();
|
lastWindow = w.get();
|
||||||
|
@ -277,6 +280,9 @@ void CHyprRenderer::renderWorkspaceWindows(CMonitor* pMonitor, CWorkspace* pWork
|
||||||
if (w->m_bIsFloating)
|
if (w->m_bIsFloating)
|
||||||
continue; // floating are in the second pass
|
continue; // floating are in the second pass
|
||||||
|
|
||||||
|
if (pWorkspace->m_bIsSpecialWorkspace && w->m_iWorkspaceID != pWorkspace->m_iID)
|
||||||
|
continue;
|
||||||
|
|
||||||
if (!shouldRenderWindow(w.get(), pMonitor, pWorkspace))
|
if (!shouldRenderWindow(w.get(), pMonitor, pWorkspace))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -301,21 +307,6 @@ void CHyprRenderer::renderWorkspaceWindows(CMonitor* pMonitor, CWorkspace* pWork
|
||||||
// render the bad boy
|
// render the bad boy
|
||||||
renderWindow(w.get(), pMonitor, time, true, RENDER_PASS_ALL);
|
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 (!shouldRenderWindow(w.get(), pMonitor, pWorkspace))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// render the bad boy
|
|
||||||
renderWindow(w.get(), pMonitor, time, true, RENDER_PASS_ALL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec* time, bool decorate, eRenderPassMode mode, bool ignorePosition, bool ignoreAllGeometry) {
|
void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec* time, bool decorate, eRenderPassMode mode, bool ignorePosition, bool ignoreAllGeometry) {
|
||||||
|
@ -680,6 +671,21 @@ void CHyprRenderer::renderAllClientsForWorkspace(CMonitor* pMonitor, CWorkspace*
|
||||||
renderWorkspaceWindows(pMonitor, ws.get(), time);
|
renderWorkspaceWindows(pMonitor, ws.get(), time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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 (!shouldRenderWindow(w.get(), pMonitor, pWorkspace))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// render the bad boy
|
||||||
|
renderWindow(w.get(), pMonitor, time, true, RENDER_PASS_ALL);
|
||||||
|
}
|
||||||
|
|
||||||
EMIT_HOOK_EVENT("render", RENDER_POST_WINDOWS);
|
EMIT_HOOK_EVENT("render", RENDER_POST_WINDOWS);
|
||||||
|
|
||||||
// Render surfaces above windows for monitor
|
// Render surfaces above windows for monitor
|
||||||
|
|
Loading…
Reference in a new issue