summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-04-10 16:19:49 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-04-10 16:19:49 +0200
commit92bfe6f13e56a0dd0cfeac82f90d55cc95eefe23 (patch)
tree4a4db0a081fcd9caa59398b4c333ace3a2d6010c /src/events/Windows.cpp
parent743efafbdea4bad87ab845472f0a8b063d4e4912 (diff)
fixed some more crashes
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;
}