diff --git a/src/render/pass/Pass.cpp b/src/render/pass/Pass.cpp index 3b04f24c3b5..3a315f6fda2 100644 --- a/src/render/pass/Pass.cpp +++ b/src/render/pass/Pass.cpp @@ -87,6 +87,12 @@ CRegion CRenderPass::render(const CRegion& damage_) { damage = damage_.copy(); + if (damage.empty()) { + g_pHyprOpenGL->m_RenderData.damage = damage; + g_pHyprOpenGL->m_RenderData.finalDamage = damage; + return damage; + } + if (WILLBLUR) { // combine blur regions into one that will be expanded CRegion blurRegion; diff --git a/src/render/pass/TexPassElement.cpp b/src/render/pass/TexPassElement.cpp index 1e5d6006508..9da09d5f97b 100644 --- a/src/render/pass/TexPassElement.cpp +++ b/src/render/pass/TexPassElement.cpp @@ -230,7 +230,7 @@ CRegion CTexPassElement::opaqueRegion() { if (data.surface && data.surface->current.size == Vector2D{data.w, data.h}) { CRegion opaqueSurf = data.surface->current.opaque.copy(); - return opaqueSurf.translate(data.pos + data.localPos - data.pMonitor->vecPosition); + return opaqueSurf.intersect(CBox{{}, {data.w, data.h}}).translate(data.pos + data.localPos - data.pMonitor->vecPosition); } return data.texture && data.texture->m_bOpaque ? boundingBox()->expand(-data.rounding) : CRegion{};