aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorVaxry <[email protected]>2024-08-02 00:31:44 +0200
committerVaxry <[email protected]>2024-08-02 00:31:44 +0200
commit09bb5658b7fa6c0dc4e2744797e51ad4dd25af42 (patch)
tree43b2694880b64014ea39e91720d994d3644ef9fb
parentab0a3268e04f2295ec4455be90ce8d0c2b107b8d (diff)
downloadHyprland-09bb5658b7fa6c0dc4e2744797e51ad4dd25af42.tar.gz
Hyprland-09bb5658b7fa6c0dc4e2744797e51ad4dd25af42.zip
window/ls: reset core signals after destroy
fixes #7137
-rw-r--r--src/desktop/LayerSurface.cpp5
-rw-r--r--src/events/Windows.cpp5
2 files changed, 10 insertions, 0 deletions
diff --git a/src/desktop/LayerSurface.cpp b/src/desktop/LayerSurface.cpp
index ba1b1776..8fd448ef 100644
--- a/src/desktop/LayerSurface.cpp
+++ b/src/desktop/LayerSurface.cpp
@@ -111,6 +111,11 @@ void CLayerSurface::onDestroy() {
layerSurface.reset();
if (surface)
surface->unassign();
+
+ listeners.unmap.reset();
+ listeners.destroy.reset();
+ listeners.map.reset();
+ listeners.commit.reset();
}
void CLayerSurface::onMap() {
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index f5ae6759..5d29a3b7 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -790,6 +790,11 @@ void Events::listener_destroyWindow(void* owner, void* data) {
Debug::log(LOG, "Unmapped {} removed instantly", PWINDOW);
g_pCompositor->removeWindowFromVectorSafe(PWINDOW); // most likely X11 unmanaged or sumn
}
+
+ PWINDOW->listeners.unmap.reset();
+ PWINDOW->listeners.destroy.reset();
+ PWINDOW->listeners.map.reset();
+ PWINDOW->listeners.commit.reset();
}
void Events::listener_setTitleWindow(void* owner, void* data) {