aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquickitem.cpp9
-rw-r--r--tests/auto/quick/qquickitem2/data/nextItemInFocusChain3.qml7
-rw-r--r--tests/auto/quick/qquickitem2/tst_qquickitem.cpp13
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);