mouse synthesis: don't say the left button is pressed during a release
authorShawn Rutledge <shawn.rutledge@digia.com>
Thu, 2 May 2013 13:57:01 +0000 (15:57 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Sat, 4 May 2013 17:26:14 +0000 (19:26 +0200)
Follows the same reasoning as Iefe63cd753f9f8bb04278fd04a4d728e3deda25e
in qtbase: buttons should have only the buttons which are still pressed.

Change-Id: I894df43254eb1b1ce173fd7acc7190e9765beb48
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
src/quick/items/qquickwindow.cpp

index 2640e66..ad13489 100644 (file)
@@ -411,7 +411,7 @@ static QMouseEvent *touchToMouseEvent(QEvent::Type type, const QTouchEvent::Touc
 {
     // The touch point local position and velocity are not yet transformed.
     QMouseEvent *me = new QMouseEvent(type, transformNeeded ? item->mapFromScene(p.scenePos()) : p.pos(), p.scenePos(), p.screenPos(),
-                                      Qt::LeftButton, Qt::LeftButton, event->modifiers());
+                                      Qt::LeftButton, (type == QEvent::MouseButtonRelease ? Qt::NoButton : Qt::LeftButton), event->modifiers());
     me->setAccepted(true);
     me->setTimestamp(event->timestamp());
     QVector2D transformedVelocity = p.velocity();