diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-08-19 09:47:35 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-08-19 09:47:35 +0200 |
commit | d2628d9d7015e4b75007471d150acedecaa0c6c1 (patch) | |
tree | 00ab012c7ae190d5a64788ee945ca006e3759e41 /src/quick/items/qquickflickable.cpp | |
parent | b6a6a6387e279c431d520243345530fa19bd96c5 (diff) | |
parent | 566afc2d2e4156712ffec081715f12307cf46628 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
tests/auto/quick/qquickgridview/qquickgridview.pro
tests/auto/quick/qquickitem/qquickitem.pro
Change-Id: Ic54cafbdda1ac22757d2ee65dcc63a1b167c7556
Diffstat (limited to 'src/quick/items/qquickflickable.cpp')
-rw-r--r-- | src/quick/items/qquickflickable.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp index f77c427ccf..9a97b1efc2 100644 --- a/src/quick/items/qquickflickable.cpp +++ b/src/quick/items/qquickflickable.cpp @@ -983,6 +983,7 @@ void QQuickFlickablePrivate::handleMousePressEvent(QMouseEvent *event) q->setKeepMouseGrab(stealMouse); clearDelayedPress(); pressed = true; + if (hData.transitionToBounds) hData.transitionToBounds->stopTransition(); if (vData.transitionToBounds) @@ -2096,7 +2097,8 @@ bool QQuickFlickable::sendMouseEvent(QQuickItem *item, QMouseEvent *event) d->lastPosTime = -1; returnToBounds(); } - if (event->type() == QEvent::MouseButtonRelease) { + if (event->type() == QEvent::MouseButtonRelease || (grabber && grabber->keepMouseGrab() && !grabberDisabled)) { + // mouse released, or another item has claimed the grab d->lastPosTime = -1; d->clearDelayedPress(); d->stealMouse = false; @@ -2109,7 +2111,7 @@ bool QQuickFlickable::sendMouseEvent(QQuickItem *item, QMouseEvent *event) bool QQuickFlickable::childMouseEventFilter(QQuickItem *i, QEvent *e) { Q_D(QQuickFlickable); - if (!isVisible() || !isEnabled()) + if (!isVisible() || !isEnabled() || !isInteractive()) return QQuickItem::childMouseEventFilter(i, e); switch (e->type()) { case QEvent::MouseButtonPress: |