aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickoverlay.cpp
diff options
context:
space:
mode:
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) {