diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-01-27 13:11:14 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-01-28 09:29:22 +0000 |
commit | de74c0ee3eab435f2a95849216129ac8e7043972 (patch) | |
tree | acec13d74c8f170d3f3161f87d87c9342f34aae2 /src/templates/qquickoverlay.cpp | |
parent | 8d8bc174243215715cb0e9143f230158c357ece1 (diff) |
Add Popup::closePolicy
Change-Id: Ie3d0f50a59aeaab36ec388af897cbf2596269ce3
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src/templates/qquickoverlay.cpp')
-rw-r--r-- | src/templates/qquickoverlay.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/templates/qquickoverlay.cpp b/src/templates/qquickoverlay.cpp index bef6193d..ab32d118 100644 --- a/src/templates/qquickoverlay.cpp +++ b/src/templates/qquickoverlay.cpp @@ -35,7 +35,7 @@ ****************************************************************************/ #include "qquickoverlay_p.h" -#include "qquickpopup_p.h" +#include "qquickpopup_p_p.h" #include "qquickdrawer_p.h" #include <QtQml/qqmlinfo.h> #include <QtQml/qqmlproperty.h> @@ -225,6 +225,14 @@ void QQuickOverlay::mousePressEvent(QMouseEvent *event) Q_D(QQuickOverlay); event->setAccepted(d->modalPopups > 0); emit pressed(); + + foreach (QQuickPopup *popup, d->popups) { + if (popup->closePolicy().testFlag(QQuickPopup::OnPressOutside)) { + QQuickItem *popupItem = QQuickPopupPrivate::get(popup)->popupItem; + if (!popupItem->contains(mapToItem(popupItem, event->pos()))) + popup->close(); + } + } } void QQuickOverlay::mouseMoveEvent(QMouseEvent *event) @@ -238,6 +246,14 @@ void QQuickOverlay::mouseReleaseEvent(QMouseEvent *event) Q_D(QQuickOverlay); event->setAccepted(d->modalPopups > 0); emit released(); + + foreach (QQuickPopup *popup, d->popups) { + if (popup->closePolicy().testFlag(QQuickPopup::OnReleaseOutside)) { + QQuickItem *popupItem = QQuickPopupPrivate::get(popup)->popupItem; + if (!popupItem->contains(mapToItem(popupItem, event->pos()))) + popup->close(); + } + } } void QQuickOverlay::wheelEvent(QWheelEvent *event) |