diff options
Diffstat (limited to 'tests/auto/quick')
-rw-r--r-- | tests/auto/quick/qquickmousearea/data/qtbug34368.qml | 38 | ||||
-rw-r--r-- | tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp | 23 |
2 files changed, 61 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickmousearea/data/qtbug34368.qml b/tests/auto/quick/qquickmousearea/data/qtbug34368.qml new file mode 100644 index 0000000000..42d8ddd3b6 --- /dev/null +++ b/tests/auto/quick/qquickmousearea/data/qtbug34368.qml @@ -0,0 +1,38 @@ +import QtQuick 2.2 + +Rectangle { + id: root + color: "green" + width: 200 + height: 200 + property int clicksEnabled: 0 + property int clicksDisabled: 0 + property bool disableLower: false + MouseArea { + anchors.fill: parent + propagateComposedEvents: true + z: 1 + onClicked: { + mouse.accepted = false; + clicksEnabled += 1; + //console.log("Upper click"); + } + } + MouseArea { + anchors.fill: parent + propagateComposedEvents: true + z: 0 + enabled: !disableLower + onClicked: { + mouse.accepted = false; + clicksDisabled += 1; + //console.log("Lower click"); + } + } + Text { + anchors.fill: parent + text: "A: " + clicksEnabled + " B:" + clicksDisabled + focus: true + Keys.onSpacePressed: root.disableLower = !root.disableLower; + } +} diff --git a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp index 0c0b51d9c2..72639556ec 100644 --- a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp +++ b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp @@ -995,6 +995,29 @@ void tst_QQuickMouseArea::clickThrough() QTRY_COMPARE(window->rootObject()->property("clicks").toInt(), 2); QCOMPARE(window->rootObject()->property("doubleClicks").toInt(), 1); QCOMPARE(window->rootObject()->property("pressAndHolds").toInt(), 1); + + window.reset(new QQuickView); + + //QTBUG-34368 - Shouldn't propagate to disabled mouse areas + QVERIFY2(initView(*window.data(), testFileUrl("qtbug34368.qml"), true, &errorMessage), errorMessage.constData()); + window->show(); + QVERIFY(QTest::qWaitForWindowExposed(window.data())); + QVERIFY(window->rootObject() != 0); + + QTest::mousePress(window.data(), Qt::LeftButton, 0, QPoint(100,100)); + QTest::mouseRelease(window.data(), Qt::LeftButton, 0, QPoint(100,100)); + + QCOMPARE(window->rootObject()->property("clicksEnabled").toInt(), 1); + QCOMPARE(window->rootObject()->property("clicksDisabled").toInt(), 1); //Not disabled yet + + window->rootObject()->setProperty("disableLower", QVariant(true)); + + QTest::qWait(doubleClickInterval); // to avoid generating a double click. + QTest::mousePress(window.data(), Qt::LeftButton, 0, QPoint(100,100)); + QTest::mouseRelease(window.data(), Qt::LeftButton, 0, QPoint(100,100)); + + QCOMPARE(window->rootObject()->property("clicksEnabled").toInt(), 2); + QCOMPARE(window->rootObject()->property("clicksDisabled").toInt(), 1); //disabled, shouldn't increment } void tst_QQuickMouseArea::hoverPosition() |