diff options
author | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-09-21 18:14:10 +0200 |
---|---|---|
committer | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-09-21 18:14:10 +0200 |
commit | fb0b6399afdd39ab2240801c839c06ea70a22c4b (patch) | |
tree | fc51548845796d21b56562109c9a0332be19035e | |
parent | 0fc040ef70513ccaeb9e96f7ca05a3df4d6c7879 (diff) | |
parent | 387e8720fcbc60cd1798c9356a91d88077569c72 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I899f3b517523e4037de50802c0912f7dd960133e
-rw-r--r-- | src/quick/items/qquickitem.cpp | 9 | ||||
-rw-r--r-- | tests/auto/quick/qquickitem2/data/nextItemInFocusChain3.qml | 7 | ||||
-rw-r--r-- | tests/auto/quick/qquickitem2/tst_qquickitem.cpp | 13 |
3 files changed, 27 insertions, 2 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 98a87a4bcf..ccad88a2e6 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -2101,6 +2101,12 @@ QQuickItem* QQuickItemPrivate::nextPrevItemInTabFocusChain(QQuickItem *item, boo { Q_ASSERT(item); + if (!item->window()) + return item; + const QQuickItem * const contentItem = item->window()->contentItem(); + if (!contentItem) + return item; + bool all = QQuickItemPrivate::qt_tab_all_widgets(); QQuickItem *from = 0; @@ -2113,7 +2119,6 @@ QQuickItem* QQuickItemPrivate::nextPrevItemInTabFocusChain(QQuickItem *item, boo from = item->parentItem(); } bool skip = false; - const QQuickItem * const contentItem = item->window()->contentItem(); const QQuickItem * const originalItem = item; QQuickItem * startItem = item; QQuickItem * firstFromItem = from; @@ -7351,7 +7356,7 @@ void QQuickItemLayer::setFormat(QQuickShaderEffectSource::Format f) /*! - \qmlproperty enumeration QtQuick2::Item::layer.sourceRect + \qmlproperty rect QtQuick2::Item::layer.sourceRect This property defines the rectangular area of the item that should be rendered into the texture. The source rectangle can be larger than diff --git a/tests/auto/quick/qquickitem2/data/nextItemInFocusChain3.qml b/tests/auto/quick/qquickitem2/data/nextItemInFocusChain3.qml new file mode 100644 index 0000000000..4781469cb1 --- /dev/null +++ b/tests/auto/quick/qquickitem2/data/nextItemInFocusChain3.qml @@ -0,0 +1,7 @@ +import QtQuick 2.1 + +Rectangle { + width: 360 + height: 360 + Component.onCompleted: nextItemInFocusChain(); +} diff --git a/tests/auto/quick/qquickitem2/tst_qquickitem.cpp b/tests/auto/quick/qquickitem2/tst_qquickitem.cpp index d15a46feca..c451ea5e0a 100644 --- a/tests/auto/quick/qquickitem2/tst_qquickitem.cpp +++ b/tests/auto/quick/qquickitem2/tst_qquickitem.cpp @@ -76,6 +76,7 @@ private slots: void nextItemInFocusChain(); void nextItemInFocusChain2(); + void nextItemInFocusChain3(); void keys(); void standardKeys_data(); @@ -960,6 +961,18 @@ void tst_QQuickItem::nextItemInFocusChain2() delete window; } +void tst_QQuickItem::nextItemInFocusChain3() +{ + QQuickView *window = new QQuickView(0); + window->setBaseSize(QSize(800,600)); + + window->setSource(testFileUrl("nextItemInFocusChain3.qml")); + window->show(); + window->requestActivate(); + QVERIFY(QTest::qWaitForWindowActive(window)); + QVERIFY(QGuiApplication::focusWindow() == window); +} + void tst_QQuickItem::keys() { QQuickView *window = new QQuickView(0); |