diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 6613db2a..77b9fa84 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -2028,12 +2028,17 @@ bool CHyprRenderer::canSkipBackBufferClear(CMonitor* pMonitor) { if (!ls->layerSurface) continue; - if (!ls->layerSurface->surface->opaque || !(ls->alpha.fl() >= 1.f)) + if (ls->alpha.fl() < 1.f) continue; - if (ls->geometry.x == pMonitor->vecPosition.x && ls->geometry.y == pMonitor->vecPosition.y && ls->geometry.width == pMonitor->vecSize.x && - ls->geometry.height == pMonitor->vecSize.y) - return true; + if (ls->geometry.x != pMonitor->vecPosition.x || ls->geometry.y != pMonitor->vecPosition.y || ls->geometry.width != pMonitor->vecSize.x || + ls->geometry.height != pMonitor->vecSize.y) + continue; + + if (!ls->layerSurface->surface->opaque) + continue; + + return true; } return false;