diff options
author | Albert Astals Cid <albert.astals.cid@kdab.com> | 2017-06-28 14:39:19 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2017-08-30 11:55:30 +0000 |
commit | 4c46dce8fd9c9dddddd1d07f56396b3eabb2efc4 (patch) | |
tree | 4906c73b440d410f0f09aa85965a1f864be664cb /src/imports | |
parent | 457c5bcb148e8ff13141e086b905f47d8b9ae03c (diff) |
Make QtQuickTest::mouseEvent use QTest::mouseX
Fixes QQuickItem::isUnderMouse returning wrong information when
moving the mouse cursor with QtQuickTest::mouseX
Also changes TestCase.mouseDrag to actually resemble more what
real life does, i.e. send mouse moves with the same localPos
if the item has already moved and update tst_drag.qml accordingly
Change-Id: I80e4ab097da90d21ba987466c1b82467755a6b56
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/testlib/TestCase.qml | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/imports/testlib/TestCase.qml b/src/imports/testlib/TestCase.qml index 7ff51bb6d6..9a279a3327 100644 --- a/src/imports/testlib/TestCase.qml +++ b/src/imports/testlib/TestCase.qml @@ -1321,15 +1321,27 @@ Item { if (ddy < (util.dragThreshold + 1)) ddy = 0 + var originalX = item.x; + var originalY = item.y; + mousePress(item, x, y, button, modifiers, delay) - //trigger dragging - mouseMove(item, x + util.dragThreshold + 1, y + util.dragThreshold + 1, moveDelay, button) + + // trigger dragging, this doesn't actually move the item yet + var triggerDragXPos = x + Math.min(util.dragThreshold + 1, dx); + var triggerDragYPos = y + Math.min(util.dragThreshold + 1, dy); + mouseMove(item, triggerDragXPos, triggerDragYPos, moveDelay, button) + if (ddx > 0 || ddy > 0) { - mouseMove(item, x + ddx, y + ddy, moveDelay, button) - mouseMove(item, x + 2*ddx, y + 2*ddy, moveDelay, button) + // move the item by ddx, ddy + mouseMove(item, triggerDragXPos + ddx, triggerDragYPos + ddy, moveDelay, button) + + // move the item by ddx, ddy again + // need to account for whether the previous move actually moved the item or not + mouseMove(item, triggerDragXPos + 2*ddx - (item.x - originalX), triggerDragYPos + 2*ddy - (item.y - originalY), moveDelay, button) } - mouseMove(item, x + dx, y + dy, moveDelay, button) - mouseRelease(item, x + dx, y + dy, button, modifiers, delay) + // Release, causes a final move + // need to account for whether the previous moves actually moved the item or not + mouseRelease(item, x + dx - (item.x - originalX), y + dy - (item.y - originalY), button, modifiers, delay) } /*! |