From 0a302901d26eff02a83742aa319f20f3b3a0c372 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sun, 27 Nov 2022 22:42:22 +0000 Subject: Added handling more special workspaces --- src/render/Renderer.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src/render/Renderer.cpp') diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index d1e60367..3fd33876 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -88,7 +88,7 @@ bool CHyprRenderer::shouldRenderWindow(CWindow* pWindow, CMonitor* pMonitor) { if (g_pCompositor->isWorkspaceVisible(pWindow->m_iWorkspaceID) && pWindow->m_bIsFloating /* tiled windows can't be multi-ws */) return !pWindow->m_bIsFullscreen; // Do not draw fullscreen windows on other monitors - if (pMonitor->specialWorkspaceOpen && pWindow->m_iWorkspaceID == SPECIAL_WORKSPACE_ID) + if (pMonitor->specialWorkspaceID && g_pCompositor->isWorkspaceSpecial(pWindow->m_iWorkspaceID)) return true; return false; @@ -111,7 +111,7 @@ bool CHyprRenderer::shouldRenderWindow(CWindow* pWindow) { if (PWORKSPACE && PWORKSPACE->m_iMonitorID == m->ID && (PWORKSPACE->m_vRenderOffset.isBeingAnimated() || PWORKSPACE->m_fAlpha.isBeingAnimated())) return true; - if (m->specialWorkspaceOpen && pWindow->m_iWorkspaceID == SPECIAL_WORKSPACE_ID) + if (m->specialWorkspaceID && g_pCompositor->isWorkspaceSpecial(pWindow->m_iWorkspaceID)) return true; } @@ -183,11 +183,11 @@ void CHyprRenderer::renderWorkspaceWithFullscreenWindow(CMonitor* pMonitor, CWor } // and then special windows - for (auto& w : g_pCompositor->m_vWindows) { + if (pMonitor->specialWorkspaceID) for (auto& w : g_pCompositor->m_vWindows) { if (!g_pCompositor->windowValidMapped(w.get()) && !w->m_bFadingOut) continue; - if (w->m_iWorkspaceID != SPECIAL_WORKSPACE_ID) + if (w->m_iWorkspaceID != pMonitor->specialWorkspaceID) continue; if (!shouldRenderWindow(w.get(), pMonitor)) @@ -404,7 +404,7 @@ void CHyprRenderer::renderAllClientsForMonitor(const int& ID, timespec* time) { if (w->m_bIsFloating) continue; // floating are in the second pass - if (w->m_iWorkspaceID == SPECIAL_WORKSPACE_ID) + if (g_pCompositor->isWorkspaceSpecial(w->m_iWorkspaceID)) continue; // special are in the third pass if (!shouldRenderWindow(w.get(), PMONITOR)) @@ -431,7 +431,7 @@ void CHyprRenderer::renderAllClientsForMonitor(const int& ID, timespec* time) { if (w->m_bIsFloating) continue; // floating are in the second pass - if (w->m_iWorkspaceID == SPECIAL_WORKSPACE_ID) + if (g_pCompositor->isWorkspaceSpecial(w->m_iWorkspaceID)) continue; // special are in the third pass if (!shouldRenderWindow(w.get(), PMONITOR)) @@ -449,7 +449,7 @@ void CHyprRenderer::renderAllClientsForMonitor(const int& ID, timespec* time) { if (!w->m_bIsFloating) continue; - if (w->m_iWorkspaceID == SPECIAL_WORKSPACE_ID) + if (g_pCompositor->isWorkspaceSpecial(w->m_iWorkspaceID)) continue; if (!shouldRenderWindow(w.get(), PMONITOR)) @@ -464,7 +464,7 @@ void CHyprRenderer::renderAllClientsForMonitor(const int& ID, timespec* time) { if (w->isHidden() && !w->m_bIsMapped && !w->m_bFadingOut) continue; - if (w->m_iWorkspaceID != SPECIAL_WORKSPACE_ID) + if (!g_pCompositor->isWorkspaceSpecial(w->m_iWorkspaceID)) continue; if (!shouldRenderWindow(w.get(), PMONITOR)) @@ -567,7 +567,7 @@ bool CHyprRenderer::attemptDirectScanout(CMonitor* pMonitor) { const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(pMonitor->activeWorkspace); - if (!PWORKSPACE || !PWORKSPACE->m_bHasFullscreenWindow || g_pInputManager->m_sDrag.drag || g_pCompositor->m_sSeat.exclusiveClient || pMonitor->specialWorkspaceOpen) + if (!PWORKSPACE || !PWORKSPACE->m_bHasFullscreenWindow || g_pInputManager->m_sDrag.drag || g_pCompositor->m_sSeat.exclusiveClient || pMonitor->specialWorkspaceID) return false; const auto PCANDIDATE = g_pCompositor->getFullscreenWindowOnWorkspace(PWORKSPACE->m_iID); -- cgit v1.2.3