summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/input
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-03-13 18:39:03 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2016-03-13 19:27:21 +0000
commit59a3ca679ede2cb9b6a162edf8eba5cf6d9af4a9 (patch)
tree0d0f76caa042db299cddaa84c14c28e4c80b2ffd /src/platformsupport/input
parent447a508d003ce487f2be69af9ab05aeec272e64d (diff)
parent50d0f57b77b8088875d7185c5906b5f57985d5fb (diff)
Merge "Merge remote-tracking branch 'origin/5.6' into 5.7" into refs/staging/5.7
Diffstat (limited to 'src/platformsupport/input')
-rw-r--r--src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp b/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
index cec596ebb2..6b98ed30a9 100644
--- a/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
+++ b/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
@@ -538,9 +538,16 @@ void QEvdevTouchScreenData::processInputEvent(input_event *data)
it.next();
Contact &contact(it.value());
int key = m_typeB ? it.key() : contact.trackingId;
- if (!m_contacts.contains(key)) {
- contact.state = Qt::TouchPointReleased;
- addTouchPoint(contact, &combinedStates);
+ if (m_typeB) {
+ if (contact.trackingId != m_contacts[key].trackingId && contact.state) {
+ contact.state = Qt::TouchPointReleased;
+ addTouchPoint(contact, &combinedStates);
+ }
+ } else {
+ if (!m_contacts.contains(key)) {
+ contact.state = Qt::TouchPointReleased;
+ addTouchPoint(contact, &combinedStates);
+ }
}
}