Skip to content

Commit

Permalink
Correct double, triple click handling in canvas when in touch mode
Browse files Browse the repository at this point in the history
The correct MouseArea signal sequence for a triple click is press,
release, click, press, doubleclick, release, press, release, click.
However QQuickCanvas sent the doubleclick before the press and did not
reset the timestamp of the last press, resulting in a sequence with
multiple doubleclicks and missing press signals.

Change-Id: Ied5f3ea93d3ad28128ce7db5c8190ab48961da6d
Reviewed-by: Martin Jones <martin.jones@nokia.com>
  • Loading branch information
Laszlo Agocs authored and Qt by Nokia committed Mar 25, 2012
1 parent 9778622 commit ea9ffeb
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions src/quick/items/qquickcanvas.cpp
Expand Up @@ -389,7 +389,17 @@ void QQuickCanvasPrivate::translateTouchToMouse(QTouchEvent *event)
bool doubleClick = event->timestamp() - touchMousePressTimestamp
< static_cast<ulong>(qApp->styleHints()->mouseDoubleClickInterval());
touchMousePressTimestamp = event->timestamp();
QQuickMouseEventEx me = touchToMouseEvent(QEvent::MouseButtonPress, p);
me.setTimestamp(event->timestamp());
me.setAccepted(false);
me.setCapabilities(event->device()->capabilities());
deliverMouseEvent(&me);
if (me.isAccepted()) {
touchMouseId = p.id();
event->setAccepted(true);
}
if (doubleClick) {
touchMousePressTimestamp = 0;
QQuickMouseEventEx me = touchToMouseEvent(QEvent::MouseButtonDblClick, p);
me.setTimestamp(event->timestamp());
me.setAccepted(false);
Expand All @@ -407,15 +417,6 @@ void QQuickCanvasPrivate::translateTouchToMouse(QTouchEvent *event)
}
}
}
QQuickMouseEventEx me = touchToMouseEvent(QEvent::MouseButtonPress, p);
me.setTimestamp(event->timestamp());
me.setAccepted(false);
me.setCapabilities(event->device()->capabilities());
deliverMouseEvent(&me);
if (me.isAccepted()) {
touchMouseId = p.id();
event->setAccepted(true);
}
if (touchMouseId != -1)
break;
} else if (p.id() == touchMouseId) {
Expand Down

0 comments on commit ea9ffeb

Please sign in to comment.