[neon/qt6/qt6-wayland/Neon/release] debian/patches: drop patch for 6.8.1 version
Carlos De Maine
null at kde.org
Sat Dec 7 09:16:58 GMT 2024
Git commit 6fddc2aa172726fa9d2940ced4eb4ee6284cd588 by Carlos De Maine.
Committed on 07/12/2024 at 09:16.
Pushed by carlosdem into branch 'Neon/release'.
drop patch for 6.8.1 version
D +0 -262 debian/patches/0001-client-Redo-management-of-tablet-object-proxies.patch
M +1 -2 debian/patches/series
https://invent.kde.org/neon/qt6/qt6-wayland/-/commit/6fddc2aa172726fa9d2940ced4eb4ee6284cd588
diff --git a/debian/patches/0001-client-Redo-management-of-tablet-object-proxies.patch b/debian/patches/0001-client-Redo-management-of-tablet-object-proxies.patch
deleted file mode 100644
index 69b42ef..0000000
--- a/debian/patches/0001-client-Redo-management-of-tablet-object-proxies.patch
+++ /dev/null
@@ -1,262 +0,0 @@
-From 807c4504b6e8ccedcef907e6fd30946c4c23618c Mon Sep 17 00:00:00 2001
-From: David Redondo <qt at david-redondo.de>
-Date: Fri, 22 Nov 2024 10:56:41 +0100
-Subject: [PATCH] client: Redo management of tablet object proxies
-
-Since 5af836aea3bb91a9f388e565415dc33b2fde4577 tools and pads can sometimes
-be parented to tablets. When a tablet is unplugged sometimes the remove
-event for the tablet can be sent before the remove events for the pad.
-Deleting the tablet will also delete the pad but not the pad proxy,
-resulting in a crash when the pad remove event is received.
-This moves destruction of the wayland proxies which makes everything much
-simpler as not every location that deletes those objects needs to call
-destroy and fixes the described problem.
-
-Change-Id: I0aaeda3d3996251e411229b5e97aa1ce0bce43ac
-Reviewed-by: David Edmundson <davidedmundson at kde.org>
-(cherry picked from commit 1f76835d1805d9b1c25c136a19c1101f19cc2259)
-Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot at qt-project.org>
----
- src/client/qwaylandtabletv2.cpp | 24 +++++----
- src/client/qwaylandtabletv2_p.h | 3 ++
- tests/auto/client/tabletv2/tst_tabletv2.cpp | 60 +++++++++++++++++----
- 3 files changed, 68 insertions(+), 19 deletions(-)
-
-diff --git a/src/client/qwaylandtabletv2.cpp b/src/client/qwaylandtabletv2.cpp
-index 1a05eb8b..a85dd87e 100644
---- a/src/client/qwaylandtabletv2.cpp
-+++ b/src/client/qwaylandtabletv2.cpp
-@@ -36,12 +36,6 @@ QWaylandTabletSeatV2::QWaylandTabletSeatV2(QWaylandTabletManagerV2 *manager, QWa
-
- QWaylandTabletSeatV2::~QWaylandTabletSeatV2()
- {
-- for (auto *tablet : m_tablets)
-- tablet->destroy();
-- for (auto *tool : m_tools)
-- tool->destroy();
-- for (auto *pad : m_pads)
-- pad->destroy();
- qDeleteAll(m_tablets);
- qDeleteAll(m_tools);
- qDeleteAll(m_deadTools);
-@@ -103,6 +97,11 @@ QWaylandTabletV2::QWaylandTabletV2(::zwp_tablet_v2 *tablet, const QString &seatN
- d->seatName = seatName;
- }
-
-+QWaylandTabletV2::~QWaylandTabletV2()
-+{
-+ destroy();
-+}
-+
- void QWaylandTabletV2::zwp_tablet_v2_name(const QString &name)
- {
- QPointingDevicePrivate *d = QPointingDevicePrivate::get(this);
-@@ -135,7 +134,6 @@ void QWaylandTabletSeatV2::toolRemoved(QWaylandTabletToolV2 *tool)
-
- void QWaylandTabletV2::zwp_tablet_v2_removed()
- {
-- destroy();
- deleteLater();
- }
-
-@@ -149,6 +147,11 @@ QWaylandTabletToolV2::QWaylandTabletToolV2(QWaylandTabletSeatV2 *tabletSeat, ::z
- // TODO get the number of buttons somehow?
- }
-
-+QWaylandTabletToolV2::~QWaylandTabletToolV2()
-+{
-+ destroy();
-+}
-+
- void QWaylandTabletToolV2::zwp_tablet_tool_v2_type(uint32_t tool_type)
- {
- QPointingDevicePrivate *d = QPointingDevicePrivate::get(this);
-@@ -241,7 +244,6 @@ void QWaylandTabletToolV2::zwp_tablet_tool_v2_done()
-
- void QWaylandTabletToolV2::zwp_tablet_tool_v2_removed()
- {
-- destroy();
- m_tabletSeat->toolRemoved(this);
- }
-
-@@ -427,6 +429,11 @@ QWaylandTabletPadV2::QWaylandTabletPadV2(::zwp_tablet_pad_v2 *pad)
- {
- }
-
-+QWaylandTabletPadV2::~QWaylandTabletPadV2()
-+{
-+ destroy();
-+}
-+
- void QWaylandTabletPadV2::zwp_tablet_pad_v2_path(const QString &path)
- {
- QPointingDevicePrivate *d = QPointingDevicePrivate::get(this);
-@@ -446,7 +453,6 @@ void QWaylandTabletPadV2::zwp_tablet_pad_v2_done()
-
- void QWaylandTabletPadV2::zwp_tablet_pad_v2_removed()
- {
-- destroy();
- delete this;
- }
-
-diff --git a/src/client/qwaylandtabletv2_p.h b/src/client/qwaylandtabletv2_p.h
-index b101826e..a4794b08 100644
---- a/src/client/qwaylandtabletv2_p.h
-+++ b/src/client/qwaylandtabletv2_p.h
-@@ -74,6 +74,7 @@ class Q_WAYLANDCLIENT_EXPORT QWaylandTabletV2 : public QPointingDevice, public Q
- Q_OBJECT
- public:
- explicit QWaylandTabletV2(::zwp_tablet_v2 *tablet, const QString &seatName);
-+ ~QWaylandTabletV2();
-
- protected:
- // callbacks which act as setters
-@@ -89,6 +90,7 @@ class Q_WAYLANDCLIENT_EXPORT QWaylandTabletToolV2 : public QPointingDevice, publ
- Q_OBJECT
- public:
- QWaylandTabletToolV2(QWaylandTabletSeatV2 *tabletSeat, ::zwp_tablet_tool_v2 *tool);
-+ ~QWaylandTabletToolV2();
-
- protected:
- void zwp_tablet_tool_v2_type(uint32_t tool_type) override;
-@@ -137,6 +139,7 @@ class Q_WAYLANDCLIENT_EXPORT QWaylandTabletPadV2 : public QPointingDevice, publi
- Q_OBJECT
- public:
- explicit QWaylandTabletPadV2(::zwp_tablet_pad_v2 *pad);
-+ ~QWaylandTabletPadV2();
-
- protected:
- // void zwp_tablet_pad_v2_group(struct ::zwp_tablet_pad_group_v2 *pad_group) override;
-diff --git a/tests/auto/client/tabletv2/tst_tabletv2.cpp b/tests/auto/client/tabletv2/tst_tabletv2.cpp
-index 85df099f..d5c2ccb3 100644
---- a/tests/auto/client/tabletv2/tst_tabletv2.cpp
-+++ b/tests/auto/client/tabletv2/tst_tabletv2.cpp
-@@ -186,9 +186,9 @@ public:
- QList<TabletV2 *> m_tablets;
- QList<TabletV2 *> m_tabletsWaitingForDestroy;
- QList<TabletToolV2 *> m_tools;
-- QList<TabletToolV2 *> m_toolsWaitingForDestroy;
-+ QList<TabletToolV2::Resource *> m_toolsWaitingForDestroy;
- QList<TabletPadV2 *> m_pads;
-- QList<TabletPadV2 *> m_padsWaitingForDestroy;
-+ QList<TabletPadV2::Resource *> m_padsWaitingForDestroy;
-
- protected:
- void zwp_tablet_seat_v2_bind_resource(Resource *resource) override
-@@ -274,11 +274,12 @@ void TabletV2::zwp_tablet_v2_destroy(QtWaylandServer::zwp_tablet_v2::Resource *r
-
- void TabletToolV2::sendRemoved()
- {
-- for (auto *resource : resourceMap())
-+ for (auto *resource : resourceMap()) {
- zwp_tablet_tool_v2_send_removed(resource->handle);
-+ m_tabletSeat->m_toolsWaitingForDestroy.append(resource);
-+ }
- bool removed = m_tabletSeat->m_tools.removeOne(this);
- QVERIFY(removed);
-- m_tabletSeat->m_toolsWaitingForDestroy.append(this);
- }
-
- uint TabletToolV2::sendProximityIn(TabletV2 *tablet, Surface *surface)
-@@ -333,26 +334,25 @@ uint TabletToolV2::sendFrame()
- void TabletToolV2::zwp_tablet_tool_v2_destroy(QtWaylandServer::zwp_tablet_tool_v2::Resource *resource)
- {
- if (m_tabletSeat) {
-- bool removed = m_tabletSeat->m_toolsWaitingForDestroy.removeOne(this);
-- QVERIFY(removed);
-+ m_tabletSeat->m_toolsWaitingForDestroy.removeOne(resource);
- }
- wl_resource_destroy(resource->handle);
- }
-
- void TabletPadV2::sendRemoved()
- {
-- for (auto *resource : resourceMap())
-+ for (auto *resource : resourceMap()) {
- zwp_tablet_pad_v2_send_removed(resource->handle);
-+ m_tabletSeat->m_padsWaitingForDestroy.append(resource);
-+ }
- bool removed = m_tabletSeat->m_pads.removeOne(this);
- QVERIFY(removed);
-- m_tabletSeat->m_padsWaitingForDestroy.append(this);
- }
-
- void TabletPadV2::zwp_tablet_pad_v2_destroy(QtWaylandServer::zwp_tablet_pad_v2::Resource *resource)
- {
- if (m_tabletSeat) {
-- bool removed = m_tabletSeat->m_padsWaitingForDestroy.removeOne(this);
-- QVERIFY(removed);
-+ m_tabletSeat->m_padsWaitingForDestroy.removeOne(resource);
- }
- wl_resource_destroy(resource->handle);
- }
-@@ -405,6 +405,8 @@ private slots:
- void destroysTablet();
- void destroysTool();
- void destroysPad();
-+ void removeTabletBeforeTool();
-+ void removeTabletBeforePad();
- void proximityEvents();
- void moveEvent();
- void pointerType_data();
-@@ -502,12 +504,14 @@ void tst_tabletv2::destroysTool()
- {
- QCOMPOSITOR_TRY_VERIFY(tabletSeat());
- exec([&] {
-+ tabletSeat()->addTablet();
- tabletSeat()->addTool();
- });
- QCOMPOSITOR_TRY_VERIFY(tabletTool());
-
- exec([&] {
- tabletTool()->sendRemoved();
-+ tablet()->sendRemoved();
- });
-
- QCOMPOSITOR_TRY_VERIFY(!tabletTool());
-@@ -530,6 +534,42 @@ void tst_tabletv2::destroysPad()
- QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_padsWaitingForDestroy.empty());
- }
-
-+void tst_tabletv2::removeTabletBeforeTool()
-+{
-+ QCOMPOSITOR_TRY_VERIFY(tabletSeat());
-+ exec([&] {
-+ tabletSeat()->addTablet();
-+ tabletSeat()->addTool();
-+ });
-+ QCOMPOSITOR_TRY_VERIFY(tablet());
-+ QCOMPOSITOR_TRY_VERIFY(tabletTool());
-+
-+ exec([&] { tablet()->sendRemoved(); });
-+ QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_tabletsWaitingForDestroy.empty());
-+
-+ exec([&] { tabletTool()->sendRemoved(); });
-+ QCOMPOSITOR_TRY_VERIFY(!tabletTool());
-+ QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_toolsWaitingForDestroy.empty());
-+}
-+
-+void tst_tabletv2::removeTabletBeforePad()
-+{
-+ QCOMPOSITOR_TRY_VERIFY(tabletSeat());
-+ exec([&] {
-+ tabletSeat()->addTablet();
-+ tabletSeat()->addPad();
-+ });
-+ QCOMPOSITOR_TRY_VERIFY(tablet());
-+ QCOMPOSITOR_TRY_VERIFY(tabletPad());
-+
-+ exec([&] { tablet()->sendRemoved(); });
-+ QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_tabletsWaitingForDestroy.empty());
-+
-+ exec([&] { tabletPad()->sendRemoved(); });
-+ QCOMPOSITOR_TRY_VERIFY(!tabletPad());
-+ QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_padsWaitingForDestroy.empty());
-+}
-+
- void tst_tabletv2::proximityEvents()
- {
- ProximityFilter filter;
---
-2.43.0
-
diff --git a/debian/patches/series b/debian/patches/series
index d50104b..7a9fba4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,5 +2,4 @@ c2f61bc47baacf2e6a44c6c3c4e4cbf0abfa4095.diff
# below are the same patchset but rebased against 6.8.0 and 6.8.1
# so move to the next one when we roll out 6.8.1
-0001-client-Redo-management-of-tablet-object-proxies.patch ### for 6.8.0
-### 24002ac6cbd01dbde4944b63c1f7c87ed2bd72b5.diff ### for 6.8.1
+24002ac6cbd01dbde4944b63c1f7c87ed2bd72b5.diff ### for 6.8.1
More information about the Neon-commits
mailing list