diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-09-03 19:47:35 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-09-05 16:35:54 +0000 |
commit | 5f9f81a1d43fd840d37982aadbe49f7343c3cbaa (patch) | |
tree | 555ab461a281fda7c344a01360037517aa901d7b /src/quicktemplates2/qquickpopup.cpp | |
parent | aa4964843f2faca2d52469edc2ba899f9b11e15c (diff) |
QQuickOverlay: keep track of all popups
Required by the subsequent patches. Done separately keep the other
patches smaller and easier to review.
Change-Id: I60212451cf53443ae7abd58b8eaad94b66984e03
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickpopup.cpp')
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index fa5864df..6c184243 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -37,7 +37,7 @@ #include "qquickpopup_p.h" #include "qquickpopup_p_p.h" #include "qquickapplicationwindow_p.h" -#include "qquickoverlay_p.h" +#include "qquickoverlay_p_p.h" #include "qquickcontrol_p_p.h" #include <QtQml/qqmlinfo.h> @@ -304,6 +304,18 @@ void QQuickPopupPrivate::setWindow(QQuickWindow *newWindow) if (window == newWindow) return; + if (window) { + QQuickOverlay *overlay = QQuickOverlay::overlay(window); + if (overlay) + QQuickOverlayPrivate::get(overlay)->removePopup(q); + } + + if (newWindow) { + QQuickOverlay *overlay = QQuickOverlay::overlay(newWindow); + if (overlay) + QQuickOverlayPrivate::get(overlay)->addPopup(q); + } + window = newWindow; emit q->windowChanged(newWindow); } |