aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-06-29 16:37:02 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-07-04 19:21:25 +0000
commit57810c5c736f69790dd49fa1146eb70de8c95a55 (patch)
tree6d961714b70edef1f86e2cb08123b71dd752a138 /tests
parent64dd82cdeaf0a6ad10e0fb57a7dabe73ea9cb77e (diff)
Fix modal overlay to block multi-touch
Task-number: QTBUG-61698 Change-Id: I46db5e9816190ac7afd6b671198dff11089bc4f3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/popup/tst_popup.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/popup/tst_popup.cpp b/tests/auto/popup/tst_popup.cpp
index 1b4f0aca..45d52517 100644
--- a/tests/auto/popup/tst_popup.cpp
+++ b/tests/auto/popup/tst_popup.cpp
@@ -285,6 +285,40 @@ void tst_popup::overlay()
QVERIFY(!popup->isVisible());
QCOMPARE(overlay->isVisible(), popup->isVisible());
+
+ // multi-touch
+ popup->open();
+ QVERIFY(popup->isVisible());
+ QVERIFY(overlay->isVisible());
+ QVERIFY(!button->isPressed());
+
+ QTest::touchEvent(window, device.data()).press(0, button->mapToScene(QPointF(1, 1)).toPoint());
+ QVERIFY(popup->isVisible());
+ QVERIFY(overlay->isVisible());
+ QCOMPARE(button->isPressed(), !modal);
+ QCOMPARE(overlayPressedSignal.count(), ++overlayPressCount);
+ QCOMPARE(overlayReleasedSignal.count(), overlayReleaseCount);
+
+ QTest::touchEvent(window, device.data()).stationary(0).press(1, button->mapToScene(QPointF(button->width() / 2, button->height() / 2)).toPoint());
+ QVERIFY(popup->isVisible());
+ QVERIFY(overlay->isVisible());
+ QCOMPARE(button->isPressed(), !modal);
+ QCOMPARE(overlayPressedSignal.count(), ++overlayPressCount);
+ QCOMPARE(overlayReleasedSignal.count(), overlayReleaseCount);
+
+ QTest::touchEvent(window, device.data()).release(0, button->mapToScene(QPointF(1, 1)).toPoint()).stationary(1);
+ QVERIFY(!popup->isVisible());
+ QVERIFY(!overlay->isVisible());
+ QVERIFY(!button->isPressed());
+ QCOMPARE(overlayPressedSignal.count(), overlayPressCount);
+ QCOMPARE(overlayReleasedSignal.count(), ++overlayReleaseCount);
+
+ QTest::touchEvent(window, device.data()).release(1, button->mapToScene(QPointF(button->width() / 2, button->height() / 2)).toPoint());
+ QVERIFY(!popup->isVisible());
+ QVERIFY(!overlay->isVisible());
+ QVERIFY(!button->isPressed());
+ QCOMPARE(overlayPressedSignal.count(), overlayPressCount);
+ QCOMPARE(overlayReleasedSignal.count(), overlayReleaseCount);
}
void tst_popup::zOrder_data()