summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-03-14 18:25:28 +0000
committerVaxry <vaxry@vaxry.net>2024-03-14 18:25:28 +0000
commit164e92f8e376536fff89dac41cde654293e64522 (patch)
tree2441ec753b92a6fd6f7d22aa341a307ed19dba76 /src/render/Renderer.cpp
parent3e67ee0f5f66c74c0a0bd4f797361fd100c2e2d2 (diff)
internal: minor fixups for fading out xwayland windows
fixes #4935
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index fd3309e1..a9c7c11a 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -335,7 +335,7 @@ void CHyprRenderer::renderWorkspaceWindows(CMonitor* pMonitor, CWorkspace* pWork
// Non-floating main
for (auto& w : g_pCompositor->m_vWindows) {
- if (w->isHidden() && !w->m_bIsMapped && !w->m_bFadingOut)
+ if (w->isHidden() || (!w->m_bIsMapped && !w->m_bFadingOut))
continue;
if (w->m_bIsFloating)
@@ -362,7 +362,7 @@ void CHyprRenderer::renderWorkspaceWindows(CMonitor* pMonitor, CWorkspace* pWork
// Non-floating popup
for (auto& w : g_pCompositor->m_vWindows) {
- if (w->isHidden() && !w->m_bIsMapped && !w->m_bFadingOut)
+ if (w->isHidden() || (!w->m_bIsMapped && !w->m_bFadingOut))
continue;
if (w->m_bIsFloating)
@@ -380,7 +380,7 @@ void CHyprRenderer::renderWorkspaceWindows(CMonitor* pMonitor, CWorkspace* pWork
// floating on top
for (auto& w : g_pCompositor->m_vWindows) {
- if (w->isHidden() && !w->m_bIsMapped && !w->m_bFadingOut)
+ if (w->isHidden() || (!w->m_bIsMapped && !w->m_bFadingOut))
continue;
if (!w->m_bIsFloating || w->m_bPinned)
@@ -410,6 +410,9 @@ void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec*
return;
}
+ if (!pWindow->m_bIsMapped)
+ return;
+
TRACY_GPU_ZONE("RenderWindow");
const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(pWindow->m_iWorkspaceID);
@@ -2414,8 +2417,10 @@ void CHyprRenderer::recheckSolitaryForMonitor(CMonitor* pMonitor) {
}
for (auto& w : g_pCompositor->m_vWindows) {
- if (w->m_iWorkspaceID == PCANDIDATE->m_iWorkspaceID && w->m_bIsFloating && w->m_bCreatedOverFullscreen && !w->isHidden() && (w->m_bIsMapped || w->m_bFadingOut) &&
- w.get() != PCANDIDATE)
+ if (w.get() == PCANDIDATE || (!w->m_bIsMapped && !w->m_bFadingOut) || w->isHidden())
+ continue;
+
+ if (w->m_iWorkspaceID == PCANDIDATE->m_iWorkspaceID && w->m_bIsFloating && w->m_bCreatedOverFullscreen && w->visibleOnMonitor(pMonitor))
return;
}