aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickpopup.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-09-03 19:47:35 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-09-05 16:35:54 +0000
commit5f9f81a1d43fd840d37982aadbe49f7343c3cbaa (patch)
tree555ab461a281fda7c344a01360037517aa901d7b /src/quicktemplates2/qquickpopup.cpp
parentaa4964843f2faca2d52469edc2ba899f9b11e15c (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.cpp14
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);
}