idle-inhibit: fix and cleanup visibility logic

fixes #5878
This commit is contained in:
Vaxry
2024-05-04 23:46:10 +01:00
parent a3309b51a2
commit 0b215c5f24
9 changed files with 73 additions and 27 deletions

View File

@@ -197,3 +197,15 @@ void CWLSurface::onCommit() {
std::shared_ptr<CPointerConstraint> CWLSurface::constraint() {
return m_pConstraint.lock();
}
bool CWLSurface::visible() {
if (!m_pWindowOwner.expired())
return g_pHyprRenderer->shouldRenderWindow(m_pWindowOwner.lock());
if (!m_pLayerOwner.expired())
return true;
if (m_pPopupOwner)
return m_pPopupOwner->visible();
if (m_pSubsurfaceOwner)
return m_pSubsurfaceOwner->visible();
return true; // non-desktop, we don't know much.
}