diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-04-29 08:16:00 +0300 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-04-29 08:16:17 +0300 |
commit | 9f63a8300f3164c5e210321d31387a56a6faeb07 (patch) | |
tree | ea87e4e6d26879c5fb544e1089a15e9ba76e8b14 /src/quicktemplates2/qquickpopup.cpp | |
parent | 7fe5e4c6858a74db582d95fae29a591b40ff7cdd (diff) | |
parent | c028ada0384ffaf22058536d0a7cba8e89f2106a (diff) |
Merge remote-tracking branch 'origin/5.9' into dev
Change-Id: I77d6c2fdf916d909cde0e9a830414571f59781a7
Diffstat (limited to 'src/quicktemplates2/qquickpopup.cpp')
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 775d4e6a..a09c25ed 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -284,7 +284,7 @@ bool QQuickPopupPrivate::tryClose(const QPointF &pos, QQuickPopup::ClosePolicy f const bool onOutside = closePolicy & (flags & outsideFlags); const bool onOutsideParent = closePolicy & (flags & outsideParentFlags); if (onOutside || onOutsideParent) { - if (!popupItem->contains(popupItem->mapFromScene(pos))) { + if (!contains(pos)) { if (!onOutsideParent || !parentItem || !parentItem->contains(parentItem->mapFromScene(pos))) { closeOrReject(); return true; @@ -294,6 +294,11 @@ bool QQuickPopupPrivate::tryClose(const QPointF &pos, QQuickPopup::ClosePolicy f return false; } +bool QQuickPopupPrivate::contains(const QPointF &scenePos) const +{ + return popupItem->contains(popupItem->mapFromScene(scenePos)); +} + bool QQuickPopupPrivate::acceptTouch(const QTouchEvent::TouchPoint &point) { if (point.id() == touchId) @@ -319,6 +324,7 @@ bool QQuickPopupPrivate::blockInput(QQuickItem *item, const QPointF &point) cons bool QQuickPopupPrivate::handlePress(QQuickItem *item, const QPointF &point, ulong timestamp) { Q_UNUSED(timestamp); + pressPoint = point; tryClose(point, QQuickPopup::CloseOnPressOutside | QQuickPopup::CloseOnPressOutsideParent); return blockInput(item, point); } @@ -333,6 +339,7 @@ bool QQuickPopupPrivate::handleRelease(QQuickItem *item, const QPointF &point, u { Q_UNUSED(timestamp); tryClose(point, QQuickPopup::CloseOnReleaseOutside | QQuickPopup::CloseOnReleaseOutsideParent); + pressPoint = QPointF(); touchId = -1; return blockInput(item, point); } @@ -346,6 +353,7 @@ void QQuickPopupPrivate::handleUngrab() if (p->mouseGrabberPopup == q) p->mouseGrabberPopup = nullptr; } + pressPoint = QPointF(); touchId = -1; } |