blob: 164c9f0e50f1c287bb29bc392d201d175deb0d61 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
From 85df79b094d1097108a28424d6f9b3b76b3aee62 Mon Sep 17 00:00:00 2001
From: Tasuku Suzuki <tasuku.suzuki@qt.io>
Date: Thu, 8 Nov 2018 15:26:57 +0900
Subject: [PATCH] Fix unstable rotation gesture
Order of touch events are not sorted on some platform. When touch point
1 and
2 are swapped, map is rotated 180 degrees in a moment
Change-Id: I9c308b805a6ca54519f26a9ff19217de7f947c17
Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
---
src/location/declarativemaps/qquickgeomapgesturearea.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/location/declarativemaps/qquickgeomapgesturearea.cpp b/src/location/declarativemaps/qquickgeomapgesturearea.cpp
index c6f4b42..576aeee 100644
--- a/src/location/declarativemaps/qquickgeomapgesturearea.cpp
+++ b/src/location/declarativemaps/qquickgeomapgesturearea.cpp
@@ -1087,6 +1087,7 @@ void QQuickGeoMapGestureArea::update()
m_allPoints << m_touchPoints;
if (m_allPoints.isEmpty() && !m_mousePoint.isNull())
m_allPoints << *m_mousePoint.data();
+ std::sort(m_allPoints.begin(), m_allPoints.end(), [](const QTouchEvent::TouchPoint &tp1, const QTouchEvent::TouchPoint &tp2) { return tp1.id() < tp2.id(); });
touchPointStateMachine();
--
2.7.4
|