aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2017-04-05 09:33:15 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2017-04-14 08:48:05 +0000
commit67ced4791ddabebfa19a2f101aa292b5eba60b90 (patch)
treec99f0797e47414fa7e9186d69238fcf12c0297dc /src
parent1457df74f4c1d770e1e820de8cd082be1bd2489e (diff)
Make tst_qquickflickable::nestedSliderUsingTouch pass
Revisions to 9b5fc80af28580e9672792dd511d876a93947882 and 781f76176239bfbfe6041f2676e2f2804337d312 are necessary to allow Flickable to steal synth-mouse events from children which accept only touch events. Change-Id: Id779368d7a44c1561da99a9f2c37e8d32278773e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/quick/items/qquickevents.cpp7
-rw-r--r--src/quick/items/qquickwindow.cpp7
2 files changed, 3 insertions, 11 deletions
diff --git a/src/quick/items/qquickevents.cpp b/src/quick/items/qquickevents.cpp
index 19dd81b6fc..3b14f72870 100644
--- a/src/quick/items/qquickevents.cpp
+++ b/src/quick/items/qquickevents.cpp
@@ -610,11 +610,8 @@ void QQuickEventPoint::setGrabberItem(QQuickItem *grabber)
m_sceneGrabPos = m_scenePos;
if (oldGrabberHandler)
oldGrabberHandler->onGrabChanged(oldGrabberHandler, CancelGrabExclusive, this);
- else if (oldGrabberItem && oldGrabberItem != grabber) {
- auto pte = pointerEvent()->asPointerTouchEvent();
- if (pte && pte->asTouchEvent() && pte->asTouchEvent()->touchPointStates() == Qt::TouchPointReleased)
- oldGrabberItem->touchUngrabEvent();
- }
+ else if (oldGrabberItem && oldGrabberItem != grabber && grabber && pointerEvent()->asPointerTouchEvent())
+ oldGrabberItem->touchUngrabEvent();
for (QPointer<QQuickPointerHandler> passiveGrabber : m_passiveGrabbers)
passiveGrabber->onGrabChanged(passiveGrabber, OverrideGrabPassive, this);
}
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index e6f77ea69a..5538cadc06 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -748,7 +748,6 @@ void QQuickWindowPrivate::setMouseGrabber(QQuickItem *grabber)
QQuickItem *oldGrabber = q->mouseGrabberItem();
qCDebug(DBG_MOUSE_TARGET) << "grabber" << oldGrabber << "->" << grabber;
- bool fromTouch = false;
if (grabber && touchMouseId != -1 && touchMouseDevice) {
// update the touch item for mouse touch id to the new grabber
@@ -759,7 +758,6 @@ void QQuickWindowPrivate::setMouseGrabber(QQuickItem *grabber)
for (auto handler : point->passiveGrabbers())
point->cancelPassiveGrab(handler);
}
- fromTouch = true;
} else {
QQuickPointerEvent *event = QQuickPointerDevice::genericMouseDevice()->pointerEvent();
Q_ASSERT(event->pointCount() == 1);
@@ -773,11 +771,8 @@ void QQuickWindowPrivate::setMouseGrabber(QQuickItem *grabber)
if (oldGrabber) {
QEvent e(QEvent::UngrabMouse);
QSet<QQuickItem *> hasFiltered;
- if (!sendFilteredMouseEvent(oldGrabber->parentItem(), oldGrabber, &e, &hasFiltered)) {
+ if (!sendFilteredMouseEvent(oldGrabber->parentItem(), oldGrabber, &e, &hasFiltered))
oldGrabber->mouseUngrabEvent();
- if (fromTouch)
- oldGrabber->touchUngrabEvent();
- }
}
}