diff options
author | Martin Jones <martin.jones@nokia.com> | 2012-07-10 16:40:06 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-11 17:37:55 +0200 |
commit | dd0caf5ad611311621696177adcaf87c33f88a03 (patch) | |
tree | ebc46c8e894a68a6a1fb9e9a6a9ba9da81e48f3e /src/quick/items/qquickcanvas.cpp | |
parent | b5eb3d69b40c4b750a1bbece7be2acbe7cf918e3 (diff) |
pressed and pressedButtons don't work when multiple buttons are pressed
The pressed property would react to any mouse event, regardless of
whether it was in acceptedButtons, or there were other buttons still
pressed. It will now remain true while any button in acceptedButtons
is pressed.
The pressedButtons property could contain buttons not in the
acceptedButtons mask. It will now only contain buttons that are in the
acceptedButtons mask.
Task-number: QTBUG-26458
Change-Id: I6b25cc36a58c113de062d530761dc179d7ef4a5a
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'src/quick/items/qquickcanvas.cpp')
-rw-r--r-- | src/quick/items/qquickcanvas.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/quick/items/qquickcanvas.cpp b/src/quick/items/qquickcanvas.cpp index 2de8fd5030..e7134c1230 100644 --- a/src/quick/items/qquickcanvas.cpp +++ b/src/quick/items/qquickcanvas.cpp @@ -1187,7 +1187,7 @@ bool QQuickCanvasPrivate::deliverInitialMousePressEvent(QQuickItem *item, QMouse event->setAccepted(me->isAccepted()); if (me->isAccepted()) return true; - if (mouseGrabberItem) + if (mouseGrabberItem && !event->buttons()) mouseGrabberItem->ungrabMouse(); } } @@ -1229,7 +1229,7 @@ void QQuickCanvas::mousePressEvent(QMouseEvent *event) { Q_D(QQuickCanvas); #ifdef MOUSE_DEBUG - qWarning() << "QQuickCanvas::mousePressEvent()" << event->pos() << event->button() << event->buttons(); + qWarning() << "QQuickCanvas::mousePressEvent()" << event->localPos() << event->button() << event->buttons(); #endif d->deliverMouseEvent(event); @@ -1240,7 +1240,7 @@ void QQuickCanvas::mouseReleaseEvent(QMouseEvent *event) { Q_D(QQuickCanvas); #ifdef MOUSE_DEBUG - qWarning() << "QQuickCanvas::mouseReleaseEvent()" << event->pos() << event->button() << event->buttons(); + qWarning() << "QQuickCanvas::mouseReleaseEvent()" << event->localPos() << event->button() << event->buttons(); #endif if (!d->mouseGrabberItem) { @@ -1249,7 +1249,7 @@ void QQuickCanvas::mouseReleaseEvent(QMouseEvent *event) } d->deliverMouseEvent(event); - if (d->mouseGrabberItem) + if (d->mouseGrabberItem && !event->buttons()) d->mouseGrabberItem->ungrabMouse(); } @@ -1258,7 +1258,7 @@ void QQuickCanvas::mouseDoubleClickEvent(QMouseEvent *event) { Q_D(QQuickCanvas); #ifdef MOUSE_DEBUG - qWarning() << "QQuickCanvas::mouseDoubleClickEvent()" << event->pos() << event->button() << event->buttons(); + qWarning() << "QQuickCanvas::mouseDoubleClickEvent()" << event->localPos() << event->button() << event->buttons(); #endif if (!d->mouseGrabberItem && (event->buttons() & event->button()) == event->buttons()) { @@ -1293,7 +1293,7 @@ void QQuickCanvas::mouseMoveEvent(QMouseEvent *event) { Q_D(QQuickCanvas); #ifdef MOUSE_DEBUG - qWarning() << "QQuickCanvas::mouseMoveEvent()" << event->pos() << event->button() << event->buttons(); + qWarning() << "QQuickCanvas::mouseMoveEvent()" << event->localPos() << event->button() << event->buttons(); #endif if (!d->mouseGrabberItem) { @@ -1423,7 +1423,7 @@ void QQuickCanvas::wheelEvent(QWheelEvent *event) { Q_D(QQuickCanvas); #ifdef MOUSE_DEBUG - qWarning() << "QQuickCanvas::wheelEvent()" << event->pos() << event->pixelDelta() << event->angleDelta(); + qWarning() << "QQuickCanvas::wheelEvent()" << event->pixelDelta() << event->angleDelta(); #endif //if the actual wheel event was accepted, accept the compatability wheel event and return early |