diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2018-04-26 16:06:45 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2018-06-29 14:42:11 +0000 |
commit | da722fb448f06cf43780e6f857a1ccd9f07176d6 (patch) | |
tree | 3bea83e40d751c361f76bb1f76fc1d591330d34e /src/quick/handlers/qquickpointerhandler_p.h | |
parent | dd333172e2ade1db6d0af72b4ed44262c2b4d8c7 (diff) |
Replace MultiPtHndlr.pointDistanceThreshold with PointerHandler.margin
It's not just useful for PinchHandler: TapHandler has a good use for it
too. But unfortunately if the handler's parent Item has a custom mask,
we don't have a way to augment the mask with a margin; so if margin is
set, we assume the bounds are rectangular.
QQuickMultiPointHandler::eligiblePoints() now calls wantsEventPoint()
rather than bounds-checking the point directly: this adds flexibility,
potentially allowing an override in subclasses, if we need it later.
Task-number: QTBUG-68077
Change-Id: I65c95f00c532044a5862654e58c9c5f8c973df81
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick/handlers/qquickpointerhandler_p.h')
-rw-r--r-- | src/quick/handlers/qquickpointerhandler_p.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/quick/handlers/qquickpointerhandler_p.h b/src/quick/handlers/qquickpointerhandler_p.h index c7420bcec2..9644bb959f 100644 --- a/src/quick/handlers/qquickpointerhandler_p.h +++ b/src/quick/handlers/qquickpointerhandler_p.h @@ -70,6 +70,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickPointerHandler : public QObject, public QQmlP Q_PROPERTY(QQuickItem * target READ target WRITE setTarget NOTIFY targetChanged) Q_PROPERTY(QQuickItem * parent READ parentItem CONSTANT) Q_PROPERTY(GrabPermissions grabPermissions READ grabPermissions WRITE setGrabPermissions NOTIFY grabPermissionChanged) + Q_PROPERTY(qreal margin READ margin WRITE setMargin NOTIFY marginChanged) public: explicit QQuickPointerHandler(QObject *parent = nullptr); @@ -106,10 +107,14 @@ public: GrabPermissions grabPermissions() const; void setGrabPermissions(GrabPermissions grabPermissions); + qreal margin() const; + void setMargin(qreal pointDistanceThreshold); + Q_SIGNALS: void enabledChanged(); void activeChanged(); void targetChanged(); + void marginChanged(); void grabChanged(QQuickEventPoint::GrabState stateChange, QQuickEventPoint *point); void grabPermissionChanged(); void canceled(QQuickEventPoint *point); @@ -137,6 +142,7 @@ protected: bool parentContains(const QQuickEventPoint *point) const; friend class QQuickEventPoint; + friend class QQuickItemPrivate; friend class QQuickWindowPrivate; Q_DECLARE_PRIVATE(QQuickPointerHandler) |