aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickmultipointtoucharea.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/items/qquickmultipointtoucharea.cpp')
-rw-r--r--src/quick/items/qquickmultipointtoucharea.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/quick/items/qquickmultipointtoucharea.cpp b/src/quick/items/qquickmultipointtoucharea.cpp
index e23e7365df..ed424a3763 100644
--- a/src/quick/items/qquickmultipointtoucharea.cpp
+++ b/src/quick/items/qquickmultipointtoucharea.cpp
@@ -902,13 +902,14 @@ void QQuickMultiPointTouchArea::touchUngrabEvent()
bool QQuickMultiPointTouchArea::sendMouseEvent(QMouseEvent *event)
{
- QPointF localPos = mapFromScene(event->scenePosition());
+ const QPointF localPos = mapFromScene(event->scenePosition());
QQuickWindow *c = window();
QQuickItem *grabber = c ? c->mouseGrabberItem() : nullptr;
bool stealThisEvent = _stealMouse;
if ((stealThisEvent || contains(localPos)) && (!grabber || !grabber->keepMouseGrab())) {
QMutableSinglePointEvent mouseEvent(*event);
+ const auto oldPosition = mouseEvent.mutablePoint().position();
mouseEvent.mutablePoint().setPosition(localPos);
mouseEvent.setSource(Qt::MouseEventSynthesizedByQt);
mouseEvent.setAccepted(false);
@@ -931,6 +932,7 @@ bool QQuickMultiPointTouchArea::sendMouseEvent(QMouseEvent *event)
if (grabber && stealThisEvent && !grabber->keepMouseGrab() && grabber != this)
grabMouse();
+ mouseEvent.mutablePoint().setPosition(oldPosition);
return stealThisEvent;
}
if (event->type() == QEvent::MouseButtonRelease) {