summaryrefslogtreecommitdiff
path: root/src/protocols/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocols/core')
-rw-r--r--src/protocols/core/Seat.cpp4
-rw-r--r--src/protocols/core/Seat.hpp5
2 files changed, 9 insertions, 0 deletions
diff --git a/src/protocols/core/Seat.cpp b/src/protocols/core/Seat.cpp
index bfe70a75..52015fd8 100644
--- a/src/protocols/core/Seat.cpp
+++ b/src/protocols/core/Seat.cpp
@@ -141,6 +141,10 @@ CWLPointerResource::CWLPointerResource(SP<CWlPointer> resource_, SP<CWLSeatResou
sendEnter(g_pSeatManager->m_state.pointerFocus.lock(), {-1, -1} /* Coords don't really matter that much, they will be updated next move */);
}
+CWLPointerResource::~CWLPointerResource() {
+ m_events.destroyed.emit();
+}
+
int CWLPointerResource::version() {
return m_resource->version();
}
diff --git a/src/protocols/core/Seat.hpp b/src/protocols/core/Seat.hpp
index c30bbd71..85dc5c39 100644
--- a/src/protocols/core/Seat.hpp
+++ b/src/protocols/core/Seat.hpp
@@ -71,6 +71,7 @@ class CWLTouchResource {
class CWLPointerResource {
public:
CWLPointerResource(SP<CWlPointer> resource_, SP<CWLSeatResource> owner_);
+ ~CWLPointerResource();
bool good();
int version();
@@ -88,6 +89,10 @@ class CWLPointerResource {
WP<CWLSeatResource> m_owner;
+ struct {
+ CSignalT<> destroyed;
+ } m_events;
+
//
static SP<CWLPointerResource> fromResource(wl_resource* res);