[PATCH] 1.Del-touch-point-without-target.patch

2.Fix-touch-failure-after-right-click-menu.patch
This commit is contained in:
fnoily 2023-01-04 16:18:02 +08:00
parent c205944890
commit e62a8a4709
2 changed files with 6 additions and 1 deletions

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) {