diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-03-22 15:55:03 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-03-23 09:15:47 +0000 |
commit | 5ea88122a7442c49d2262c95a6b0cd32c5b5b541 (patch) | |
tree | d3d5cb247177214e9ac646d1e0989a4605c9f7a6 /src | |
parent | dc5b4044fddfa31509610b22f9527435cd1c580c (diff) |
Support ApplicationWindow attached property for items inside Popup
Change-Id: Ie8fb9fcf415670102d9364f85120bc315a8a067e
Task-number: QTBUG-51991
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/templates/qquickapplicationwindow.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/templates/qquickapplicationwindow.cpp b/src/templates/qquickapplicationwindow.cpp index 1cc21d74..0e85fc2b 100644 --- a/src/templates/qquickapplicationwindow.cpp +++ b/src/templates/qquickapplicationwindow.cpp @@ -620,6 +620,16 @@ QQuickApplicationWindowAttached::QQuickApplicationWindowAttached(QObject *parent if (QQuickItem *item = qobject_cast<QQuickItem *>(parent)) { d->windowChange(item->window()); QObjectPrivate::connect(item, &QQuickItem::windowChanged, d, &QQuickApplicationWindowAttachedPrivate::windowChange); + if (!d->window) { + QQuickItem *p = item; + while (p) { + if (QQuickPopup *popup = qobject_cast<QQuickPopup *>(p->parent())) { + d->windowChange(popup->window()); + QObjectPrivate::connect(popup, &QQuickPopup::windowChanged, d, &QQuickApplicationWindowAttachedPrivate::windowChange); + } + p = p->parentItem(); + } + } } else if (QQuickPopup *popup = qobject_cast<QQuickPopup *>(parent)) { d->windowChange(popup->window()); QObjectPrivate::connect(popup, &QQuickPopup::windowChanged, d, &QQuickApplicationWindowAttachedPrivate::windowChange); |