diff options
author | Vaxry <[email protected]> | 2024-08-02 00:31:44 +0200 |
---|---|---|
committer | Vaxry <[email protected]> | 2024-08-02 00:31:44 +0200 |
commit | 09bb5658b7fa6c0dc4e2744797e51ad4dd25af42 (patch) | |
tree | 43b2694880b64014ea39e91720d994d3644ef9fb | |
parent | ab0a3268e04f2295ec4455be90ce8d0c2b107b8d (diff) | |
download | Hyprland-09bb5658b7fa6c0dc4e2744797e51ad4dd25af42.tar.gz Hyprland-09bb5658b7fa6c0dc4e2744797e51ad4dd25af42.zip |
window/ls: reset core signals after destroy
fixes #7137
-rw-r--r-- | src/desktop/LayerSurface.cpp | 5 | ||||
-rw-r--r-- | src/events/Windows.cpp | 5 |
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) { |