summaryrefslogtreecommitdiff
path: root/src/protocols
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2024-07-28 23:41:15 +0200
committervaxerski <vaxry@vaxry.net>2024-07-28 23:41:41 +0200
commit73d09953e84ae4f320498fee8522295899972f25 (patch)
tree5229b4bbde66555c4294d6c76c7c34759dee5996 /src/protocols
parentfcff2dcac24ca497a39c1cb271d449ade037b7ad (diff)
core/surface: drop map/unmap events in member funcs
causes loops
Diffstat (limited to 'src/protocols')
-rw-r--r--src/protocols/core/Compositor.cpp4
-rw-r--r--src/protocols/core/Subcompositor.cpp2
2 files changed, 2 insertions, 4 deletions
diff --git a/src/protocols/core/Compositor.cpp b/src/protocols/core/Compositor.cpp
index 76907cc2..7275cbf8 100644
--- a/src/protocols/core/Compositor.cpp
+++ b/src/protocols/core/Compositor.cpp
@@ -319,8 +319,6 @@ void CWLSurfaceResource::map() {
mapped = true;
- events.map.emit();
-
timespec now;
clock_gettime(CLOCK_MONOTONIC, &now);
frame(&now);
@@ -335,8 +333,6 @@ void CWLSurfaceResource::unmap() {
mapped = false;
- events.unmap.emit();
-
// release the buffers.
// this is necessary for XWayland to function correctly,
// as it does not unmap via the traditional commit(null buffer) method, but via the X11 protocol.
diff --git a/src/protocols/core/Subcompositor.cpp b/src/protocols/core/Subcompositor.cpp
index cbc4063a..01cc0798 100644
--- a/src/protocols/core/Subcompositor.cpp
+++ b/src/protocols/core/Subcompositor.cpp
@@ -82,11 +82,13 @@ CWLSubsurfaceResource::CWLSubsurfaceResource(SP<CWlSubsurface> resource_, SP<CWL
listeners.commitSurface = surface->events.commit.registerListener([this](std::any d) {
if (surface->current.buffer && !surface->mapped) {
surface->map();
+ surface->events.map.emit();
return;
}
if (!surface->current.buffer && surface->mapped) {
surface->unmap();
+ surface->events.unmap.emit();
return;
}
});