From 9bb09d125a4b1c236d27f88c869b038e35ae061b Mon Sep 17 00:00:00 2001 From: Fnoily Date: Wed, 4 Jan 2023 08:46:10 +0000 Subject: [PATCH] !1 ISSUE #I66RY2 Merge pull request !1 from Fnoily/openkylin/yangtze --- debian/changelog | 9 ++++++ debian/patches/0029-1-ISSUE-I66RY2.patch | 38 ++++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 48 insertions(+) create mode 100644 debian/patches/0029-1-ISSUE-I66RY2.patch diff --git a/debian/changelog b/debian/changelog index de6d22ed..0f01357a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +qtbase-opensource-src (5.15.3+dfsg-ok1.1) yangtze; urgency=medium + + * Bug: Issue#I66RY2 + * 需求: 无 + * 其他: 合并patch:1.Del-touch-point-without-target.patch;2.Fix-touch-failure-after-right-click-menu.patch + * 影响域:桌面触摸失效 + + -- liuyang Wed, 4 Jan 2023 16:00:00 +0800 + qtbase-opensource-src (5.15.3+dfsg-ok1) yangtze; urgency=medium * Build for openKylin. diff --git a/debian/patches/0029-1-ISSUE-I66RY2.patch b/debian/patches/0029-1-ISSUE-I66RY2.patch new file mode 100644 index 00000000..a2179f05 --- /dev/null +++ b/debian/patches/0029-1-ISSUE-I66RY2.patch @@ -0,0 +1,38 @@ +From: Fnoily +Date: Wed, 4 Jan 2023 08:46:10 +0000 +Subject: !1 ISSUE #I66RY2 Merge pull request !1 from Fnoily/openkylin/yangtze + +--- + src/gui/kernel/qguiapplication.cpp | 3 ++- + src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 4 ++++ + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp +index a95331e..bbdf9ce 100644 +--- a/src/gui/kernel/qguiapplication.cpp ++++ b/src/gui/kernel/qguiapplication.cpp +@@ -3061,7 +3061,8 @@ void QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::To + QEvent::Type mouseEventType = QEvent::MouseMove; + Qt::MouseButton button = Qt::NoButton; + Qt::MouseButtons buttons = Qt::LeftButton; +- if (eventType == QEvent::TouchBegin && m_fakeMouseSourcePointId < 0) ++ if ((eventType == QEvent::TouchBegin && m_fakeMouseSourcePointId < 0) ++ || (touchPoints.count() == 1 && m_fakeMouseSourcePointId != touchPoints.first().id())) + m_fakeMouseSourcePointId = touchPoints.first().id(); + for (const auto &touchPoint : touchPoints) { + if (touchPoint.id() == m_fakeMouseSourcePointId) { +diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp +index 27a2526..4674630 100644 +--- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp ++++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp +@@ -593,6 +593,10 @@ void QXcbConnection::xi2HandleEvent(xcb_ge_event_t *event) + fixed1616ToReal(xiDeviceEvent->root_x), fixed1616ToReal(xiDeviceEvent->root_y),xiDeviceEvent->event); + if (QXcbWindow *platformWindow = platformWindowFromId(xiDeviceEvent->event)) + xi2ProcessTouch(xiDeviceEvent, platformWindow); ++ else { // When the window cannot be matched, delete it from touchPoints ++ if (TouchDeviceData *dev = touchDeviceForId(xiDeviceEvent->sourceid)) ++ dev->touchPoints.remove((xiDeviceEvent->detail % INT_MAX)); ++ } + break; + } + } else if (xiEnterEvent && !xi2MouseEventsDisabled() && eventListener) { diff --git a/debian/patches/series b/debian/patches/series index 074cd3a0..fb9218d1 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -26,3 +26,4 @@ path_max.diff qstorageinfo_linux.diff cross_build_mysql.diff cast_types_for_egl_x11_test.diff +0029-1-ISSUE-I66RY2.patch