aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorvaxerski <[email protected]>2022-10-09 17:23:12 +0100
committervaxerski <[email protected]>2022-10-09 17:40:30 +0100
commit881f8282501845f57505015e85abbe668bfb740f (patch)
tree62fab591e9f05f043558529a191d5f2216990fe5
parent0743dab3f05667afe187558fe06dcb07ec66c990 (diff)
downloadHyprland-881f8282501845f57505015e85abbe668bfb740f.tar.gz
Hyprland-881f8282501845f57505015e85abbe668bfb740f.zip
better subsurface handling on unmaps
-rw-r--r--src/helpers/SubsurfaceTree.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/helpers/SubsurfaceTree.cpp b/src/helpers/SubsurfaceTree.cpp
index a5c7f0a0..349f5090 100644
--- a/src/helpers/SubsurfaceTree.cpp
+++ b/src/helpers/SubsurfaceTree.cpp
@@ -178,19 +178,23 @@ void Events::listener_unmapSubsurface(void* owner, void* data) {
if (subsurface->pChild) {
const auto PNODE = subsurface->pChild;
- int lx = 0, ly = 0;
- addSurfaceGlobalOffset(PNODE, &lx, &ly);
+ const auto IT = std::find_if(SubsurfaceTree::surfaceTreeNodes.begin(), SubsurfaceTree::surfaceTreeNodes.end(), [&](const SSurfaceTreeNode& other) { return &other == PNODE; });
- wlr_box extents = {lx, ly, 0, 0};
- if (PNODE->pSurface) {
- extents.width = PNODE->pSurface->current.width;
- extents.height = PNODE->pSurface->current.height;
+ if (IT != SubsurfaceTree::surfaceTreeNodes.end()) {
+ int lx = 0, ly = 0;
+ addSurfaceGlobalOffset(PNODE, &lx, &ly);
- g_pHyprRenderer->damageBox(&extents);
- }
+ wlr_box extents = {lx, ly, 0, 0};
+ if (PNODE->pSurface) {
+ extents.width = PNODE->pSurface->current.width;
+ extents.height = PNODE->pSurface->current.height;
- //SubsurfaceTree::destroySurfaceTree(subsurface->pChild);
- //subsurface->pChild = nullptr;
+ g_pHyprRenderer->damageBox(&extents);
+ }
+
+ // SubsurfaceTree::destroySurfaceTree(subsurface->pChild);
+ // subsurface->pChild = nullptr;
+ }
}
}