aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/helpers/SubsurfaceTree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/helpers/SubsurfaceTree.cpp')
-rw-r--r--src/helpers/SubsurfaceTree.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/helpers/SubsurfaceTree.cpp b/src/helpers/SubsurfaceTree.cpp
index 7058d32e..1906fd02 100644
--- a/src/helpers/SubsurfaceTree.cpp
+++ b/src/helpers/SubsurfaceTree.cpp
@@ -107,7 +107,7 @@ void SubsurfaceTree::destroySurfaceTree(SSurfaceTreeNode* pNode) {
extents.x += lx;
extents.y += ly;
- g_pHyprRenderer->damageBox(&extents);
+ g_pHyprRenderer->damageBox(&extents, !pNode->pSurface->wlr()->opaque);
}
// remove references to this node
@@ -203,7 +203,7 @@ void Events::listener_unmapSubsurface(void* owner, void* data) {
extents.width = PNODE->pSurface->wlr()->current.width;
extents.height = PNODE->pSurface->wlr()->current.height;
- g_pHyprRenderer->damageBox(&extents);
+ g_pHyprRenderer->damageBox(&extents, !PNODE->pSurface->wlr()->opaque);
}
// SubsurfaceTree::destroySurfaceTree(subsurface->pChild);
@@ -239,12 +239,13 @@ void Events::listener_commitSubsurface(void* owner, void* data) {
const auto NODECOORDS = pNode->pSubsurface ? Vector2D(pNode->pSubsurface->pSubsurface->current.x, pNode->pSubsurface->pSubsurface->current.y) : Vector2D();
if (&cs != pNode->pSubsurface && cs.pSubsurface) {
- g_pHyprRenderer->damageSurface(cs.pSubsurface->surface, lx - NODECOORDS.x + cs.pSubsurface->current.x, ly - NODECOORDS.y + cs.pSubsurface->current.y, SCALE);
+ g_pHyprRenderer->damageSurface(cs.pSubsurface->surface, lx - NODECOORDS.x + cs.pSubsurface->current.x, ly - NODECOORDS.y + cs.pSubsurface->current.y, SCALE,
+ !cs.pSubsurface->surface->opaque);
}
}
if (pNode->pSurface && pNode->pSurface->exists())
- g_pHyprRenderer->damageSurface(pNode->pSurface->wlr(), lx, ly, SCALE);
+ g_pHyprRenderer->damageSurface(pNode->pSurface->wlr(), lx, ly, SCALE, !pNode->pSurface->wlr()->opaque);
}
void Events::listener_destroySubsurface(void* owner, void* data) {