evdevtouch: Report stationary touchpoints that include pressure changes

Task-number: QTBUG-77142
Change-Id: I35446092679573df51891302155c896a3bb6fc1c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
(cherry picked from commit ee9bc61cd906505271bad887664c15b9397906ab)
This commit is contained in:
Shawn Rutledge 2019-10-03 08:37:28 +02:00
parent d1646b37b1
commit 41e59afc41

View File

@ -573,6 +573,7 @@ void QEvdevTouchScreenData::processInputEvent(input_event *data)
m_lastTouchPoints = m_touchPoints;
m_touchPoints.clear();
Qt::TouchPointStates combinedStates;
bool hasPressure = false;
QMutableHashIterator<int, Contact> it(m_contacts);
while (it.hasNext()) {
@ -603,6 +604,9 @@ void QEvdevTouchScreenData::processInputEvent(input_event *data)
continue;
}
if (contact.pressure)
hasPressure = true;
addTouchPoint(contact, &combinedStates);
}
@ -649,7 +653,7 @@ void QEvdevTouchScreenData::processInputEvent(input_event *data)
m_contacts.clear();
if (!m_touchPoints.isEmpty() && combinedStates != Qt::TouchPointStationary)
if (!m_touchPoints.isEmpty() && (hasPressure || combinedStates != Qt::TouchPointStationary))
reportPoints();
if (m_filtered)