diff --git a/src/protocols/LayerShell.cpp b/src/protocols/LayerShell.cpp index e018c3d0..5018828e 100644 --- a/src/protocols/LayerShell.cpp +++ b/src/protocols/LayerShell.cpp @@ -73,8 +73,8 @@ CLayerShellResource::CLayerShellResource(SP resource_, SPunmap(); events.unmap.emit(); + surface->unmap(); configured = false; return; } diff --git a/src/protocols/XDGShell.cpp b/src/protocols/XDGShell.cpp index 4b180617..e9921988 100644 --- a/src/protocols/XDGShell.cpp +++ b/src/protocols/XDGShell.cpp @@ -365,8 +365,8 @@ CXDGSurfaceResource::CXDGSurfaceResource(SP resource_, SPcurrent.buffer && mapped) { mapped = false; - surface->unmap(); events.unmap.emit(); + surface->unmap(); return; } diff --git a/src/protocols/core/Compositor.cpp b/src/protocols/core/Compositor.cpp index 368b8ed4..6352b7e6 100644 --- a/src/protocols/core/Compositor.cpp +++ b/src/protocols/core/Compositor.cpp @@ -152,8 +152,8 @@ CWLSurfaceResource::~CWLSurfaceResource() { void CWLSurfaceResource::destroy() { if (mapped) { - unmap(); events.unmap.emit(); + unmap(); } events.destroy.emit(); PROTO::compositor->destroyResource(this); diff --git a/src/protocols/core/Subcompositor.cpp b/src/protocols/core/Subcompositor.cpp index 01cc0798..c0c1f258 100644 --- a/src/protocols/core/Subcompositor.cpp +++ b/src/protocols/core/Subcompositor.cpp @@ -87,8 +87,8 @@ CWLSubsurfaceResource::CWLSubsurfaceResource(SP resource_, SPcurrent.buffer && surface->mapped) { - surface->unmap(); surface->events.unmap.emit(); + surface->unmap(); return; } }); diff --git a/src/xwayland/XSurface.cpp b/src/xwayland/XSurface.cpp index 5d25e0e8..107b22da 100644 --- a/src/xwayland/XSurface.cpp +++ b/src/xwayland/XSurface.cpp @@ -114,12 +114,11 @@ void CXWaylandSurface::unmap() { std::erase(g_pXWayland->pWM->mappedSurfacesStacking, self); mapped = false; + events.unmap.emit(); surface->unmap(); Debug::log(LOG, "XWayland surface {:x} unmapping", (uintptr_t)this); - events.unmap.emit(); - g_pXWayland->pWM->updateClientList(); }