aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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();
- }
}
}