From e57f925dfc4a5fdcc6e8999dc95e520799981560 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Tue, 5 Jan 2021 15:36:57 +0100 Subject: [PATCH] tablet: Address how he clean resources up --- src/wayland/tablet_v2_interface.cpp | 40 ++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/src/wayland/tablet_v2_interface.cpp b/src/wayland/tablet_v2_interface.cpp index 315ae5d286..2fe5ea70f8 100644 --- a/src/wayland/tablet_v2_interface.cpp +++ b/src/wayland/tablet_v2_interface.cpp @@ -185,15 +185,15 @@ public: void zwp_tablet_tool_v2_destroy_resource(Resource * resource) override { delete m_cursors.take(resource->handle); - } - - void zwp_tablet_tool_v2_destroy(Resource *resource) override { - Q_UNUSED(resource); if (m_removed && resourceMap().isEmpty()) { delete q; } } + void zwp_tablet_tool_v2_destroy(Resource *resource) override { + wl_resource_destroy(resource->handle); + } + Display *const m_display; bool m_cleanup = false; bool m_removed = false; @@ -349,12 +349,16 @@ public: return r ? r->handle : nullptr; } - void zwp_tablet_pad_ring_v2_destroy(Resource *resource) override { - wl_resource_destroy(resource->handle); + void zwp_tablet_pad_ring_v2_destroy_resource(Resource *resource) override { + Q_UNUSED(resource) if (m_pad->isRemoved() && resourceMap().isEmpty()) { delete q; } } + + void zwp_tablet_pad_ring_v2_destroy(Resource *resource) override { + wl_resource_destroy(resource->handle); + } TabletPadRingV2Interface *const q; TabletPadV2Interface *m_pad; }; @@ -403,12 +407,16 @@ public: return r ? r->handle : nullptr; } - void zwp_tablet_pad_strip_v2_destroy(Resource *resource) override { - wl_resource_destroy(resource->handle); + void zwp_tablet_pad_strip_v2_destroy_resource(Resource *resource) override { + Q_UNUSED(resource) if (m_pad->isRemoved() && resourceMap().isEmpty()) { delete q; } } + + void zwp_tablet_pad_strip_v2_destroy(Resource *resource) override { + wl_resource_destroy(resource->handle); + } TabletPadV2Interface *m_pad = nullptr; TabletPadStripV2Interface *const q; }; @@ -458,13 +466,17 @@ public: return r ? r->handle : nullptr; } - void zwp_tablet_pad_group_v2_destroy(Resource * resource) override { - wl_resource_destroy(resource->handle); + void zwp_tablet_pad_group_v2_destroy_resource(Resource *resource) override { + Q_UNUSED(resource) if (m_pad->isRemoved() && resourceMap().isEmpty()) { delete q; } } + void zwp_tablet_pad_group_v2_destroy(Resource *resource) override { + wl_resource_destroy(resource->handle); + } + TabletPadGroupV2Interface *const q; TabletPadV2Interface *m_pad = nullptr; quint32 m_currentMode; @@ -514,13 +526,17 @@ public: } } - void zwp_tablet_pad_v2_destroy(Resource *resource) override { - wl_resource_destroy(resource->handle); + void zwp_tablet_pad_v2_destroy_resource(Resource *resource) override { + Q_UNUSED(resource) if (m_removed && resourceMap().isEmpty()) { delete q; } } + void zwp_tablet_pad_v2_destroy(Resource *resource) override { + wl_resource_destroy(resource->handle); + } + void zwp_tablet_pad_v2_set_feedback(Resource *resource, quint32 button, const QString &description, quint32 serial) override { Q_EMIT q->feedback(m_display->getConnection(resource->client()), button, description, serial); }