aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2012-03-01 10:40:22 +1000
committerQt by Nokia <qt-info@nokia.com>2012-03-01 10:09:50 +0100
commit5422a86b39490c30ca86a272a111c3d7da15fb3f (patch)
tree1d15793fd8276fa875df0d990baae8188c9b7249
parent22a5c42b83c5bff8d3b47b3b7f0d096fa212d0a6 (diff)
No double click event in QML_TRANSLATE_TOUCH_TO_MOUSE mode
Since double clicks are delivered before the click, the initial grab may not have been established. Change-Id: Id9282489f0551d421da800294e88ead0915482cc Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
-rw-r--r--src/quick/items/qquickcanvas.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/quick/items/qquickcanvas.cpp b/src/quick/items/qquickcanvas.cpp
index e6a3e87401..670baa8df7 100644
--- a/src/quick/items/qquickcanvas.cpp
+++ b/src/quick/items/qquickcanvas.cpp
@@ -378,10 +378,17 @@ void QQuickCanvasPrivate::translateTouchToMouse(QTouchEvent *event)
QQuickMouseEventEx me = touchToMouseEvent(QEvent::MouseButtonDblClick, p);
me.setTimestamp(event->timestamp());
me.setAccepted(false);
- deliverMouseEvent(&me);
- if (me.isAccepted()) {
- touchMouseId = p.id();
- event->setAccepted(true);
+ if (!mouseGrabberItem) {
+ if (deliverInitialMousePressEvent(rootItem, &me)) {
+ touchMouseId = p.id();
+ event->setAccepted(true);
+ }
+ } else {
+ deliverMouseEvent(&me);
+ if (me.isAccepted()) {
+ touchMouseId = p.id();
+ event->setAccepted(true);
+ }
}
}
QQuickMouseEventEx me = touchToMouseEvent(QEvent::MouseButtonPress, p);
@@ -391,8 +398,9 @@ void QQuickCanvasPrivate::translateTouchToMouse(QTouchEvent *event)
if (me.isAccepted()) {
touchMouseId = p.id();
event->setAccepted(true);
- break;
}
+ if (touchMouseId != -1)
+ break;
} else if (p.id() == touchMouseId) {
if (p.state() & Qt::TouchPointMoved) {
QQuickMouseEventEx me = touchToMouseEvent(QEvent::MouseMove, p);