!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 Gitee
commit 9a2751b91b
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
3 changed files with 15 additions and 1 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 qtbase-opensource-src (5.15.3+dfsg-ok1) yangtze; urgency=medium
* Build for openKylin. * Build for openKylin.

View File

@ -3061,7 +3061,8 @@ void QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::To
QEvent::Type mouseEventType = QEvent::MouseMove; QEvent::Type mouseEventType = QEvent::MouseMove;
Qt::MouseButton button = Qt::NoButton; Qt::MouseButton button = Qt::NoButton;
Qt::MouseButtons buttons = Qt::LeftButton; 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(); m_fakeMouseSourcePointId = touchPoints.first().id();
for (const auto &touchPoint : touchPoints) { for (const auto &touchPoint : touchPoints) {
if (touchPoint.id() == m_fakeMouseSourcePointId) { if (touchPoint.id() == m_fakeMouseSourcePointId) {

View File

@ -593,6 +593,10 @@ void QXcbConnection::xi2HandleEvent(xcb_ge_event_t *event)
fixed1616ToReal(xiDeviceEvent->root_x), fixed1616ToReal(xiDeviceEvent->root_y),xiDeviceEvent->event); fixed1616ToReal(xiDeviceEvent->root_x), fixed1616ToReal(xiDeviceEvent->root_y),xiDeviceEvent->event);
if (QXcbWindow *platformWindow = platformWindowFromId(xiDeviceEvent->event)) if (QXcbWindow *platformWindow = platformWindowFromId(xiDeviceEvent->event))
xi2ProcessTouch(xiDeviceEvent, platformWindow); 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; break;
} }
} else if (xiEnterEvent && !xi2MouseEventsDisabled() && eventListener) { } else if (xiEnterEvent && !xi2MouseEventsDisabled() && eventListener) {