From 92bfe6f13e56a0dd0cfeac82f90d55cc95eefe23 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sun, 10 Apr 2022 16:19:49 +0200 Subject: fixed some more crashes --- src/events/Windows.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/events/Windows.cpp') 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; } -- cgit v1.2.3