aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickoverlay.cpp
diff options
context:
space:
mode:
authorNikita Krupenko <krnekit@gmail.com>2016-05-08 18:46:48 +0300
committerJ-P Nurmi <jpnurmi@qt.io>2016-05-09 07:05:05 +0000
commita57c31e5ed5a4b4649084aa528ed75f25d0881e1 (patch)
tree96192721e473883d8e8bbbb52f7255c98b59db16 /src/quicktemplates2/qquickoverlay.cpp
parentd4bce2256ca275068675b8b8d07d07a88118d4e5 (diff)
Fix overlay stacking order for multiple modal popups
This needed when using multiple drawers in application. Task-number: QTBUG-53066 Change-Id: I81dbaeb2b974dc18a66bac2cee6b07516eb97a23 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickoverlay.cpp')
-rw-r--r--src/quicktemplates2/qquickoverlay.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/quicktemplates2/qquickoverlay.cpp b/src/quicktemplates2/qquickoverlay.cpp
index b2fb5e23..04ed8470 100644
--- a/src/quicktemplates2/qquickoverlay.cpp
+++ b/src/quicktemplates2/qquickoverlay.cpp
@@ -128,20 +128,18 @@ void QQuickOverlayPrivate::restackOverlay()
if (!modal && !modeless)
return;
- // find the top-most modal and modeless dimming popups
+ // find the bottom-most modal and top-most modeless dimming popups
QQuickPopup *modalPopup = nullptr;
QQuickPopup *modelessPopup = nullptr;
for (auto it = popups.crbegin(), end = popups.crend(); it != end; ++it) {
QQuickPopup *popup = (*it);
if (popup->isModal()) {
- if (!modalPopup)
+ if (!modalPopup || modalPopup->z() >= popup->z())
modalPopup = popup;
} else if (popup->dim()) {
if (!modelessPopup)
modelessPopup = popup;
}
- if (modalPopup && modelessPopup)
- break;
}
if (modal) {