!1 ISSUE #I66RY2

Merge pull request !1 from Fnoily/openkylin/yangtze
This commit is contained in:
Fnoily 2023-01-04 08:46:10 +00:00 committed by cckylin-cibot
parent c2a0d75dd0
commit 9bb09d125a
3 changed files with 48 additions and 0 deletions

9
debian/changelog vendored
View File

@ -1,3 +1,12 @@
qtbase-opensource-src (5.15.3+dfsg-ok1.1) yangtze; urgency=medium
* Bug: Issue#I66RY2
* 需求: 无
* 其他: 合并patch1.Del-touch-point-without-target.patch2.Fix-touch-failure-after-right-click-menu.patch
* 影响域:桌面触摸失效
-- liuyang <liuyang@kylinos.cn> Wed, 4 Jan 2023 16:00:00 +0800
qtbase-opensource-src (5.15.3+dfsg-ok1) yangtze; urgency=medium
* Build for openKylin.

View File

@ -0,0 +1,38 @@
From: Fnoily <liuyang@kylinos.cn>
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) {

View File

@ -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