diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-06-29 10:48:27 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2020-07-02 12:25:40 +0000 |
commit | d9a051a7056212d521c1f8aa3f8e5d66b1a01e96 (patch) | |
tree | 4f25d5c78cffbfd66dc3dbf6fe17a535a92f7cef /src/quick | |
parent | b92a4558aa56c25a9a766ec0cc97699892a672e2 (diff) |
Fix MouseArea mouseX/mouseY coordinates while dragging
When MouseArea is not anchored with the usual anchors.fill: parent,
such that its position is not 0,0, calculating mouseX/mouseY as
d->lastScenePos - mapToScene(position()) was wrong. It could be
d->lastScenePos - mapToScene(QPointF()), but instead we use
mapFromScene(d->lastScenePos) as in a few other places.
Amends 8068e7b98cde09565efe27585b84e120f9c5ea99.
Fixes: QTBUG-85111
Task-number: QTBUG-75993
Change-Id: If1440d05ec3b75d9f9f4802fbc361756fadb559e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 192609f2f8c2f5d8b48716af2166aaa8ad67e80b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/qquickmousearea.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/quick/items/qquickmousearea.cpp b/src/quick/items/qquickmousearea.cpp index 4df743ab0e..982d089b5f 100644 --- a/src/quick/items/qquickmousearea.cpp +++ b/src/quick/items/qquickmousearea.cpp @@ -749,7 +749,7 @@ void QQuickMouseArea::mouseMoveEvent(QMouseEvent *event) if (d->drag->active()) { d->drag->target()->setPosition(boundedDragPos); - d->lastPos = d->lastScenePos - mapToScene(position()); + d->lastPos = mapFromScene(d->lastScenePos); } bool dragOverThresholdX = QQuickWindowPrivate::dragOverThreshold(dragPos.x() - startPos.x(), |