diff options
author | Liang Qi <liang.qi@qt.io> | 2018-02-02 09:50:10 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-02-02 09:50:10 +0100 |
commit | 2e65f6c2a5d84f4369245cabdc03eca4c19851f0 (patch) | |
tree | ae662f1aca8dc42d4fbb309681c3051d6201ceb6 /src/quick/items/qquickloader.cpp | |
parent | a8cff469b6f9055f084c31514481d08c11b5303b (diff) | |
parent | 6958308c09ceda855a30c5a2d491f078c5104071 (diff) |
Merge remote-tracking branch 'origin/5.9' into 5.10
Change-Id: I41ca9120a470a905c2f5c168c1de4cf970fa0fff
Diffstat (limited to 'src/quick/items/qquickloader.cpp')
-rw-r--r-- | src/quick/items/qquickloader.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/quick/items/qquickloader.cpp b/src/quick/items/qquickloader.cpp index d5601292b7..c8f7d8440e 100644 --- a/src/quick/items/qquickloader.cpp +++ b/src/quick/items/qquickloader.cpp @@ -686,6 +686,13 @@ void QQuickLoaderPrivate::incubatorStateChanged(QQmlIncubator::Status status) if (status == QQmlIncubator::Ready) { object = incubator->object(); item = qmlobject_cast<QQuickItem*>(object); + if (!item) { + QQuickWindow *window = qmlobject_cast<QQuickWindow*>(object); + if (window) { + qCDebug(lcTransient) << window << "is transient for" << q->window(); + window->setTransientParent(q->window()); + } + } emit q->itemChanged(); initResize(); incubator->clear(); @@ -830,6 +837,18 @@ void QQuickLoader::componentComplete() } } +void QQuickLoader::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value) +{ + if (change == ItemSceneChange) { + QQuickWindow *loadedWindow = qmlobject_cast<QQuickWindow *>(item()); + if (loadedWindow) { + qCDebug(lcTransient) << loadedWindow << "is transient for" << value.window; + loadedWindow->setTransientParent(value.window); + } + } + QQuickItem::itemChange(change, value); +} + /*! \qmlsignal QtQuick::Loader::loaded() |