diff options
author | Nikita Krupenko <krnekit@gmail.com> | 2016-05-08 18:46:48 +0300 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-05-09 07:05:05 +0000 |
commit | a57c31e5ed5a4b4649084aa528ed75f25d0881e1 (patch) | |
tree | 96192721e473883d8e8bbbb52f7255c98b59db16 /src/quicktemplates2/qquickoverlay.cpp | |
parent | d4bce2256ca275068675b8b8d07d07a88118d4e5 (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.cpp | 6 |
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) { |