summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/events/Windows.cpp')
-rw-r--r--src/events/Windows.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index 628a388b..722d3ed6 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -221,6 +221,18 @@ void Events::listener_destroyWindow(void* owner, void* data) {
g_pCompositor->m_pLastFocus = nullptr;
}
+ PWINDOW->hyprListener_mapWindow.removeCallback();
+ PWINDOW->hyprListener_unmapWindow.removeCallback();
+ PWINDOW->hyprListener_destroyWindow.removeCallback();
+
+ g_pLayoutManager->getCurrentLayout()->onWindowRemoved(PWINDOW);
+
+ if (PWINDOW->m_pSurfaceTree) {
+ Debug::log(LOG, "Destroying Subsurface tree of %x in destroyWindow", PWINDOW);
+ SubsurfaceTree::destroySurfaceTree(PWINDOW->m_pSurfaceTree);
+ PWINDOW->m_pSurfaceTree = nullptr;
+ }
+
PWINDOW->m_bReadyToDelete = true;
}