From 970018248f44d259cd16c0896862e8b4a464c9b9 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Tue, 31 May 2022 22:16:13 +0200 Subject: Don't damage surfaces coming from not rendered windows --- src/helpers/SubsurfaceTree.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/helpers/SubsurfaceTree.hpp') diff --git a/src/helpers/SubsurfaceTree.hpp b/src/helpers/SubsurfaceTree.hpp index 32a3013e..52f54f16 100644 --- a/src/helpers/SubsurfaceTree.hpp +++ b/src/helpers/SubsurfaceTree.hpp @@ -4,6 +4,7 @@ #include struct SSubsurface; +class CWindow; typedef void (*applyGlobalOffsetFn)(void *, int *, int *); @@ -21,6 +22,7 @@ struct SSurfaceTreeNode { applyGlobalOffsetFn offsetfn; void *globalOffsetData; + CWindow* pWindowOwner = nullptr; bool operator==(const SSurfaceTreeNode& rhs) { return pSurface == rhs.pSurface; @@ -37,13 +39,15 @@ struct SSubsurface { DYNLISTENER(unmap); DYNLISTENER(destroy); + CWindow* pWindowOwner = nullptr; + bool operator==(const SSubsurface& rhs) { return pSubsurface == rhs.pSubsurface; } }; namespace SubsurfaceTree { - SSurfaceTreeNode* createTreeRoot(wlr_surface*, applyGlobalOffsetFn, void*); + SSurfaceTreeNode* createTreeRoot(wlr_surface*, applyGlobalOffsetFn, void*, CWindow* pWindow = nullptr); void destroySurfaceTree(SSurfaceTreeNode*); inline std::list surfaceTreeNodes; -- cgit v1.2.3