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:
parent
d1646b37b1
commit
41e59afc41
@ -573,6 +573,7 @@ void QEvdevTouchScreenData::processInputEvent(input_event *data)
|
|||||||
m_lastTouchPoints = m_touchPoints;
|
m_lastTouchPoints = m_touchPoints;
|
||||||
m_touchPoints.clear();
|
m_touchPoints.clear();
|
||||||
Qt::TouchPointStates combinedStates;
|
Qt::TouchPointStates combinedStates;
|
||||||
|
bool hasPressure = false;
|
||||||
|
|
||||||
QMutableHashIterator<int, Contact> it(m_contacts);
|
QMutableHashIterator<int, Contact> it(m_contacts);
|
||||||
while (it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
@ -603,6 +604,9 @@ void QEvdevTouchScreenData::processInputEvent(input_event *data)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (contact.pressure)
|
||||||
|
hasPressure = true;
|
||||||
|
|
||||||
addTouchPoint(contact, &combinedStates);
|
addTouchPoint(contact, &combinedStates);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -649,7 +653,7 @@ void QEvdevTouchScreenData::processInputEvent(input_event *data)
|
|||||||
m_contacts.clear();
|
m_contacts.clear();
|
||||||
|
|
||||||
|
|
||||||
if (!m_touchPoints.isEmpty() && combinedStates != Qt::TouchPointStationary)
|
if (!m_touchPoints.isEmpty() && (hasPressure || combinedStates != Qt::TouchPointStationary))
|
||||||
reportPoints();
|
reportPoints();
|
||||||
|
|
||||||
if (m_filtered)
|
if (m_filtered)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user