diff --git a/src/compositor/compositor_api/qwaylandquickitem.cpp b/src/compositor/compositor_api/qwaylandquickitem.cpp index a1855529caff81ec04aca09dd9c6814c6c817465..5e90c06c7fee4551cd4cff5b86bf26a13ba2394b 100644 --- a/src/compositor/compositor_api/qwaylandquickitem.cpp +++ b/src/compositor/compositor_api/qwaylandquickitem.cpp @@ -645,6 +645,12 @@ void QWaylandQuickItem::touchEvent(QTouchEvent *event) grabMouse(); } + if (event->type() == QEvent::TouchEnd) { + QQuickItem *grabber = window()->mouseGrabberItem(); + if (grabber == this) + ungrabMouse(); + } + QPoint pointPos; const QList<QTouchEvent::TouchPoint> &points = event->touchPoints(); if (!points.isEmpty())