diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-11-26 07:37:17 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-11-26 08:50:50 +0000 |
commit | cf59a0acaee9b47bd371dd3ab8f0a6bd1f5b6d35 (patch) | |
tree | c29aab57d5e2edbf5bc571aca099a44d5564ff18 /tests/auto | |
parent | 131fe1b85311b8ab02498cea5d1dda2188dcdabc (diff) |
MouseArea: fixed a crash in propagate()
Should not propagate without window.
Task-number: QTBUG-49100
Change-Id: Ieda3a8357283f8d07d4ffc0cc62c4e15645d7e5a
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/quick/qquickmousearea/data/qtbug49100.qml | 29 | ||||
-rw-r--r-- | tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp | 13 |
2 files changed, 42 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickmousearea/data/qtbug49100.qml b/tests/auto/quick/qquickmousearea/data/qtbug49100.qml new file mode 100644 index 0000000000..39b293c8fa --- /dev/null +++ b/tests/auto/quick/qquickmousearea/data/qtbug49100.qml @@ -0,0 +1,29 @@ +import QtQuick 2.2 + +ListView { + id: list + width: 200 + height: 200 + model: 50 + delegate: Text { + text: index + 1 + height: 30 + width: parent.width + MouseArea { + anchors.fill: parent + } + Rectangle { + anchors.fill: parent + opacity: 0.5 + MouseArea { + anchors.fill: parent + propagateComposedEvents: true + onReleased: { + list.currentIndex = 0; + list.positionViewAtIndex(list.currentIndex, ListView.Contain) + } + } + } + } + Component.onCompleted: list.positionViewAtIndex(40, ListView.Beginning) +} diff --git a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp index da8bb9e94d..5bdc6f415a 100644 --- a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp +++ b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp @@ -1149,6 +1149,19 @@ void tst_QQuickMouseArea::clickThrough() QCOMPARE(window->rootObject()->property("clicksEnabled").toInt(), 2); QCOMPARE(window->rootObject()->property("clicksDisabled").toInt(), 1); //disabled, shouldn't increment + + window.reset(new QQuickView); + + //QTBUG-49100 + QVERIFY2(initView(*window.data(), testFileUrl("qtbug49100.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)); + + QVERIFY(window->rootObject() != 0); } void tst_QQuickMouseArea::hoverPosition() |