diff options
author | Martin Jones <martin.jones@nokia.com> | 2012-03-01 10:40:22 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-01 10:09:50 +0100 |
commit | 5422a86b39490c30ca86a272a111c3d7da15fb3f (patch) | |
tree | 1d15793fd8276fa875df0d990baae8188c9b7249 /src | |
parent | 22a5c42b83c5bff8d3b47b3b7f0d096fa212d0a6 (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquickcanvas.cpp | 18 |
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); |