diff options
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 7b40f646..adc25c56 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -1588,10 +1588,12 @@ void CHyprRenderer::damageSurface(wlr_surface* pSurface, double x, double y, dou y += CORRECTION.y; } - const auto WLSURF = CWLSurface::surfaceFromWlr(pSurface); - if (!WLSURF) + const auto WLSURF = CWLSurface::surfaceFromWlr(pSurface); + CRegion damageBox = WLSURF ? WLSURF->logicalDamage() : CRegion{}; + if (!WLSURF) { Debug::log(ERR, "BUG THIS: No CWLSurface for surface in damageSurface!!!"); - CRegion damageBox = WLSURF ? WLSURF->logicalDamage() : CRegion{&pSurface->buffer_damage}; + wlr_surface_get_effective_damage(pSurface, damageBox.pixman()); + } if (scale != 1.0) damageBox.scale(scale); |
