diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-02-27 19:26:40 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-02-27 19:26:40 +0000 |
commit | 4418da21bd05d610a3450f4aa75481785ca372a0 (patch) | |
tree | 05975a5e68e88b64b58ed4f9c416e36cd4dbff4e /dev-qt/qtwayland | |
parent | acfd7c956a7b45da7af1452ec12e0b2d5e6ac65b (diff) |
gentoo auto-resync : 27:02:2025 - 19:26:39
Diffstat (limited to 'dev-qt/qtwayland')
-rw-r--r-- | dev-qt/qtwayland/Manifest | 4 | ||||
-rw-r--r-- | dev-qt/qtwayland/files/qtwayland-6.8.1-tablet-crash.patch | 201 | ||||
-rw-r--r-- | dev-qt/qtwayland/files/qtwayland-6.8.2-QTBUG-127821.patch | 19 | ||||
-rw-r--r-- | dev-qt/qtwayland/qtwayland-6.8.2-r1.ebuild (renamed from dev-qt/qtwayland/qtwayland-6.8.2.ebuild) | 1 |
4 files changed, 22 insertions, 203 deletions
diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest index 580897426f29..965dd640ece4 100644 --- a/dev-qt/qtwayland/Manifest +++ b/dev-qt/qtwayland/Manifest @@ -1,10 +1,10 @@ AUX qtwayland-6.8.0-wayland.xml-1.23.0.patch 13031 BLAKE2B 4cdee104ec7ba05ddff6cc8f1afda24276eb9fbb0f3b2f0abacb3da57fe3e210dfa6f3d836ff45535d5ff53473fdc55876ef27138d80d8978cc39e8e85d32347 SHA512 621dc44b1577abbece55242f872edb8c6f7e29da8bebd3a9f7f62c2877cca558a35d68738bc6662ff5303e5773cec7dc3a9a073530c0bfebc7799febd338a70f -AUX qtwayland-6.8.1-tablet-crash.patch 5790 BLAKE2B a117bde4b957c122a7840f26a84d0c14ea822d99a8c51626fe1852f025725ac174ac52598b8ff759d04cc3c0250329b93abc3e79581f407c4c7cc7f8b6339ccb SHA512 01e20f250caf9f568664eeef33496528622197782909e10d42684fadd6aeef638fb3af937b49b550c08b80cbad77b710efbfc653f855881db5c60a06218724e3 +AUX qtwayland-6.8.2-QTBUG-127821.patch 1217 BLAKE2B e03d7bef441a62fe13ec7e8ebd9d61b5de205f5e26fa439424b3681b19dde257c313b8c5efb631fc7bbcf73f169cfa7da32b52b7b1965161657ac66a4e83cffd SHA512 94cfc6016d2bbba2204be8bc458165e0073c7a260e53587ac456948413067f39b0f4a622a70e05008ecb3f669432dc534b3c115d2cf7c0485f7f920240f064b4 DIST qtwayland-5.15.16-gentoo-kde-2.tar.xz 47116 BLAKE2B 30646c02214167b1891b84873f7d10812d3aa1894db1a246771a2df2a799d1768c857a623153d862e15f6a7ed7b784738c8afdc5f4968e57a7e2296735d69876 SHA512 c3af344eb647fb16f1237387345ee4e56e2efa7376f10d46d09de34c77add092cb50acf29d180fa61ab33331fee959ab187339b05b6fa0b9d4fda6f0c28b600b DIST qtwayland-everywhere-opensource-src-5.15.16.tar.xz 561148 BLAKE2B a095051245e0ba0f0a27c7da703628e67b30465e12de06c1662dea3a3d74163cc67baa004f0cbab01bf5b70c6d2bdea289278859b2713a00f595cc51bb6f654a SHA512 9ce2bca54aa0e17be17383fccd6caca721db5b54f8905ec86cf871ed0e2414e6bc86878b9cc5167c322153467076b2afdcd6163a8fb2feb6b19cef11c3a29247 DIST qtwayland-everywhere-src-6.8.2.tar.xz 1138764 BLAKE2B a2311698c23d00e81dff3b2e7140dc5cd2c2006c713d2e777fc032a407ca393914f0a68a92d1c7e3ccdb668d498fa10a67d61e4419eb341705678b843149ec89 SHA512 b11a2a9189939b9deb000d6dc517242290fbba228e4a0bb2c5097c20aac79431b1398d940ed145a9fd308ae73605dd7df6cf89643de92c158b7ae92a948db954 EBUILD qtwayland-5.15.16-r1.ebuild 1207 BLAKE2B 984349f38fe3cce37edf077459ab1a3af3ab381e9be6bb91b965ecf6e6d33013a657f3f5024ffaa480b3ffe585d3b7629dad20d7c9b7695dc2f5204a5db44f2b SHA512 77487a3aa80dc44531f24078df7f45705ec43264d2ff02e4e5be4236f7601a4215e1fbbe4e4d264df83e76d4b209e1969b56c309e7afd7e901ea130bea8d93d9 -EBUILD qtwayland-6.8.2.ebuild 1704 BLAKE2B ba4626acef6053076f75133681f178a6ce4545a185b13458566425cdd03cad30c2d6edfac43b9e91cbd983a38ab0f295b7a6054184d95691498402929e6033d0 SHA512 b39eae0f0b6460bfe0626e81891fbc9bf72c3476462105eb131a98412e7a65bcbc8cc51a089bae41ce83408f4d2f13898292672404e9847f700899ca653db100 +EBUILD qtwayland-6.8.2-r1.ebuild 1750 BLAKE2B 9e0bb35a13e519456cc74366ee3e7631e891e04d7bcb1b83a7e841242c6a1766a62f1ccc50dd10016c11fb4c77fa03e68d54b5fd172983f919f70a392ce16c6b SHA512 3afd76d0d9c7c8ae7043ce3f55c37f3a44581e65951107afbb4c068ed4a7e371bae7b1cbae8ac95128fdd8ad36d2f1ae6b358b61e4ace2de4ddb39cf15a95270 EBUILD qtwayland-6.8.9999.ebuild 1710 BLAKE2B 2e7298c4da6e4b34e648a1faffda3c07de7b5a3b5344a44cdf0fbbcddba233b2e50d3d58cf5fdd47bae2802e20b409e2447b7b85ed6a9608f9dc85cfb60d259d SHA512 901d80e4c4468eea255adaf394e697e9dfe0ab957174c980b1eddc6a2d7490d995b934cce9799cec1a251dbee24cba147150ddf466c092006c7652b4d3d78e68 EBUILD qtwayland-6.9.9999.ebuild 1645 BLAKE2B 46c867b24c3cd70d3d366bbdb907f34a05abd34f2f66dadab2acef6032bf2072793848bc45404b8711773e42f212bbb3a37d1330d16850fc7b213ddc7303f0d4 SHA512 8c8911fca164e71e6ce7d569280cbbbaa6be669f03798e0b6a57b9b3a962c3203bd3803dd7f4b8d5f8df64ede1617230481b151dbeef8deb3d00125804295830 EBUILD qtwayland-6.9999.ebuild 1645 BLAKE2B 46c867b24c3cd70d3d366bbdb907f34a05abd34f2f66dadab2acef6032bf2072793848bc45404b8711773e42f212bbb3a37d1330d16850fc7b213ddc7303f0d4 SHA512 8c8911fca164e71e6ce7d569280cbbbaa6be669f03798e0b6a57b9b3a962c3203bd3803dd7f4b8d5f8df64ede1617230481b151dbeef8deb3d00125804295830 diff --git a/dev-qt/qtwayland/files/qtwayland-6.8.1-tablet-crash.patch b/dev-qt/qtwayland/files/qtwayland-6.8.1-tablet-crash.patch deleted file mode 100644 index 8d2a5c89dd4c..000000000000 --- a/dev-qt/qtwayland/files/qtwayland-6.8.1-tablet-crash.patch +++ /dev/null @@ -1,201 +0,0 @@ -Recommended backport of [1] by the kde community[2] to avoid several crashes -when unplugging a tablet (missed the 6.8.1 window, will be in 6.8.2). - -[1] https://github.com/qt/qtwayland/commit/24002ac6cbd01dbde4944b63c1f7c87ed2bd72b5 -[2] https://mail.kde.org/pipermail/distributions/2024-November/001550.html ---- a/src/client/qwaylandtabletv2.cpp -+++ b/src/client/qwaylandtabletv2.cpp -@@ -188,10 +188,4 @@ - 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); -@@ -255,4 +249,9 @@ - } - -+QWaylandTabletV2::~QWaylandTabletV2() -+{ -+ destroy(); -+} -+ - void QWaylandTabletV2::zwp_tablet_v2_name(const QString &name) - { -@@ -293,5 +292,4 @@ - void QWaylandTabletV2::zwp_tablet_v2_removed() - { -- destroy(); - deleteLater(); - } -@@ -317,5 +315,8 @@ - } - --QWaylandTabletToolV2::~QWaylandTabletToolV2() = default; -+QWaylandTabletToolV2::~QWaylandTabletToolV2() -+{ -+ destroy(); -+} - - void QWaylandTabletToolV2::zwp_tablet_tool_v2_type(uint32_t tool_type) -@@ -411,5 +412,4 @@ - void QWaylandTabletToolV2::zwp_tablet_tool_v2_removed() - { -- destroy(); - m_tabletSeat->toolRemoved(this); - } -@@ -603,4 +603,9 @@ - } - -+QWaylandTabletPadV2::~QWaylandTabletPadV2() -+{ -+ destroy(); -+} -+ - void QWaylandTabletPadV2::zwp_tablet_pad_v2_path(const QString &path) - { -@@ -622,5 +627,4 @@ - void QWaylandTabletPadV2::zwp_tablet_pad_v2_removed() - { -- destroy(); - delete this; - } ---- a/src/client/qwaylandtabletv2_p.h -+++ b/src/client/qwaylandtabletv2_p.h -@@ -84,4 +84,5 @@ - public: - explicit QWaylandTabletV2(::zwp_tablet_v2 *tablet, const QString &seatName); -+ ~QWaylandTabletV2(); - - protected: -@@ -99,5 +100,5 @@ - public: - QWaylandTabletToolV2(QWaylandTabletSeatV2 *tabletSeat, ::zwp_tablet_tool_v2 *tool); -- ~QWaylandTabletToolV2() override; -+ ~QWaylandTabletToolV2(); - - void updateCursor(); -@@ -182,4 +183,5 @@ - public: - explicit QWaylandTabletPadV2(::zwp_tablet_pad_v2 *pad); -+ ~QWaylandTabletPadV2(); - - protected: ---- a/tests/auto/client/tabletv2/tst_tabletv2.cpp -+++ b/tests/auto/client/tabletv2/tst_tabletv2.cpp -@@ -187,7 +187,7 @@ - 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: -@@ -275,9 +275,10 @@ - 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); - } - -@@ -334,6 +335,5 @@ - { - if (m_tabletSeat) { -- bool removed = m_tabletSeat->m_toolsWaitingForDestroy.removeOne(this); -- QVERIFY(removed); -+ m_tabletSeat->m_toolsWaitingForDestroy.removeOne(resource); - } - wl_resource_destroy(resource->handle); -@@ -342,9 +342,10 @@ - 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); - } - -@@ -352,6 +353,5 @@ - { - if (m_tabletSeat) { -- bool removed = m_tabletSeat->m_padsWaitingForDestroy.removeOne(this); -- QVERIFY(removed); -+ m_tabletSeat->m_padsWaitingForDestroy.removeOne(resource); - } - wl_resource_destroy(resource->handle); -@@ -406,4 +406,6 @@ - void destroysTool(); - void destroysPad(); -+ void removeTabletBeforeTool(); -+ void removeTabletBeforePad(); - void proximityEvents(); - void moveEvent(); -@@ -503,4 +505,5 @@ - QCOMPOSITOR_TRY_VERIFY(tabletSeat()); - exec([&] { -+ tabletSeat()->addTablet(); - tabletSeat()->addTool(); - }); -@@ -509,4 +512,5 @@ - exec([&] { - tabletTool()->sendRemoved(); -+ tablet()->sendRemoved(); - }); - -@@ -529,4 +533,40 @@ - QCOMPOSITOR_TRY_VERIFY(!tabletPad()); - 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()); - } - diff --git a/dev-qt/qtwayland/files/qtwayland-6.8.2-QTBUG-127821.patch b/dev-qt/qtwayland/files/qtwayland-6.8.2-QTBUG-127821.patch new file mode 100644 index 000000000000..1498ada95622 --- /dev/null +++ b/dev-qt/qtwayland/files/qtwayland-6.8.2-QTBUG-127821.patch @@ -0,0 +1,19 @@ +https://bugreports.qt.io/browse/QTBUG-127821 +https://codereview.qt-project.org/c/qt/qtwayland/+/623667 +--- a/src/client/qwaylandinputdevice.cpp ++++ b/src/client/qwaylandinputdevice.cpp +@@ -1140,8 +1140,10 @@ + // If the window has been destroyed, we still need to report an up event, but it can't + // be handled by the destroyed window (obviously), so send the event here instead. +- QWindowSystemInterface::handleMouseEvent(nullptr, event->timestamp, event->local, +- event->global, event->buttons, +- event->button, event->type, +- event->modifiers);// , Qt::MouseEventSource source = Qt::MouseEventNotSynthesized); ++ QWindowSystemInterface::handleMouseEvent( ++ nullptr, event->timestamp, ++ QPointingDevice::primaryPointingDevice(mParent->seatname()), event->local, ++ event->global, event->buttons, event->button, event->type, ++ event->modifiers); // , Qt::MouseEventSource source = ++ // Qt::MouseEventNotSynthesized); + } + delete mFrameData.event; diff --git a/dev-qt/qtwayland/qtwayland-6.8.2.ebuild b/dev-qt/qtwayland/qtwayland-6.8.2-r1.ebuild index 689cea35b06d..a6163825eb35 100644 --- a/dev-qt/qtwayland/qtwayland-6.8.2.ebuild +++ b/dev-qt/qtwayland/qtwayland-6.8.2-r1.ebuild @@ -49,6 +49,7 @@ CMAKE_SKIP_TESTS=( PATCHES=( "${FILESDIR}"/${PN}-6.8.0-wayland.xml-1.23.0.patch + "${FILESDIR}"/${PN}-6.8.2-QTBUG-127821.patch ) src_configure() { |