better subsurface handling on unmaps

This commit is contained in:
vaxerski 2022-10-09 17:23:12 +01:00
parent 0743dab3f0
commit 881f828250

View file

@ -178,6 +178,9 @@ void Events::listener_unmapSubsurface(void* owner, void* data) {
if (subsurface->pChild) { if (subsurface->pChild) {
const auto PNODE = subsurface->pChild; const auto PNODE = subsurface->pChild;
const auto IT = std::find_if(SubsurfaceTree::surfaceTreeNodes.begin(), SubsurfaceTree::surfaceTreeNodes.end(), [&](const SSurfaceTreeNode& other) { return &other == PNODE; });
if (IT != SubsurfaceTree::surfaceTreeNodes.end()) {
int lx = 0, ly = 0; int lx = 0, ly = 0;
addSurfaceGlobalOffset(PNODE, &lx, &ly); addSurfaceGlobalOffset(PNODE, &lx, &ly);
@ -193,6 +196,7 @@ void Events::listener_unmapSubsurface(void* owner, void* data) {
// subsurface->pChild = nullptr; // subsurface->pChild = nullptr;
} }
} }
}
void Events::listener_commitSubsurface(void* owner, void* data) { void Events::listener_commitSubsurface(void* owner, void* data) {
SSurfaceTreeNode* pNode = (SSurfaceTreeNode*)owner; SSurfaceTreeNode* pNode = (SSurfaceTreeNode*)owner;