diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2017-03-02 13:49:11 +0100 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2017-03-02 13:49:11 +0100 |
commit | 32c1212f81fcfc7b5e49f85d68b05cd94cd90521 (patch) | |
tree | 795a3175173285f4ba5bd15cdc7ae6ec11c556d2 /tests/auto/quick/touchmouse | |
parent | 79d3fe1bba4589c7f5780bb505eac7872061ee32 (diff) | |
parent | 78dd18a0cd18449e1289e428ea6eca65e28fb114 (diff) |
Merge remote-tracking branch 'origin/dev' into wip/pointerhandler
Change-Id: I7e43a0a47d49de38617f6afc7548f9a9e212a851
Diffstat (limited to 'tests/auto/quick/touchmouse')
-rw-r--r-- | tests/auto/quick/touchmouse/tst_touchmouse.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/auto/quick/touchmouse/tst_touchmouse.cpp b/tests/auto/quick/touchmouse/tst_touchmouse.cpp index bb251023c7..b02d60d0c5 100644 --- a/tests/auto/quick/touchmouse/tst_touchmouse.cpp +++ b/tests/auto/quick/touchmouse/tst_touchmouse.cpp @@ -172,6 +172,7 @@ private slots: void touchPointDeliveryOrder(); void hoverEnabled(); + void implicitUngrab(); protected: bool eventFilter(QObject *, QEvent *event) @@ -1414,6 +1415,37 @@ void tst_TouchMouse::hoverEnabled() QVERIFY(!mouseArea2->hovered()); } +void tst_TouchMouse::implicitUngrab() +{ + QScopedPointer<QQuickView> window(createView()); + window->setSource(testFileUrl("singleitem.qml")); + window->show(); + QQuickViewTestUtil::centerOnScreen(window.data()); + QQuickViewTestUtil::moveMouseAway(window.data()); + QVERIFY(QTest::qWaitForWindowActive(window.data())); + + QQuickItem *root = window->rootObject(); + QVERIFY(root != 0); + EventItem *eventItem = root->findChild<EventItem*>("eventItem1"); + eventItem->acceptMouse = true; + QPoint p1(20, 20); + QTest::touchEvent(window.data(), device).press(0, p1); + + QCOMPARE(window->mouseGrabberItem(), eventItem); + eventItem->eventList.clear(); + eventItem->setEnabled(false); + QVERIFY(!eventItem->eventList.isEmpty()); + QCOMPARE(eventItem->eventList.at(0).type, QEvent::UngrabMouse); + QTest::touchEvent(window.data(), device).release(0, p1); // clean up potential state + + eventItem->setEnabled(true); + QTest::touchEvent(window.data(), device).press(0, p1); + eventItem->eventList.clear(); + eventItem->setVisible(false); + QVERIFY(!eventItem->eventList.isEmpty()); + QCOMPARE(eventItem->eventList.at(0).type, QEvent::UngrabMouse); + QTest::touchEvent(window.data(), device).release(0, p1); // clean up potential state +} QTEST_MAIN(tst_TouchMouse) #include "tst_touchmouse.moc" |