summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-11-27 22:42:22 +0000
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-11-27 22:42:22 +0000
commit0a302901d26eff02a83742aa319f20f3b3a0c372 (patch)
tree2104ba94ae9279ef0ed8a0c3edb861564099e6a1 /src/render/Renderer.cpp
parent49063f949df92ab60244ff9e08025172bc512a8d (diff)
Added handling more special workspaces
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp18
1 files changed, 9 insertions, 9 deletions
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);