diff options
author | Jan Arve Saether <jan-arve.saether@qt.io> | 2016-12-23 15:30:33 +0100 |
---|---|---|
committer | Jan Arve Sæther <jan-arve.saether@qt.io> | 2016-12-29 10:27:49 +0000 |
commit | 70113ef66b245e58ce12e2a9d26268e2eaeb3a42 (patch) | |
tree | c3882090db4e76aac1e5c5e7c8da13b41db4806c /src/quick/handlers/qquickpointerhandler_p.h | |
parent | 953b5070160a3a1bed7aaf986a1bb1c3b33b0dca (diff) |
Don't assume that target is the parent item
To summarize: A pointer handler always gets its pointer events from its
parent item. It applies its effect (drag, pinch, ...) on the item
referenced to by the target property. By default, target refers to the
parent, but that is not always the case. In addition to this we also
have to handle the case when the target is null
Change-Id: If62108abf0aeb713906bf88472ad9a32a74efff6
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 | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/quick/handlers/qquickpointerhandler_p.h b/src/quick/handlers/qquickpointerhandler_p.h index 9595897d72..85f1096410 100644 --- a/src/quick/handlers/qquickpointerhandler_p.h +++ b/src/quick/handlers/qquickpointerhandler_p.h @@ -70,7 +70,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickPointerHandler : public QObject public: QQuickPointerHandler(QObject *parent = 0); - virtual ~QQuickPointerHandler() { } + virtual ~QQuickPointerHandler(); public: bool enabled() const { return m_enabled; } @@ -78,7 +78,7 @@ public: bool active() const { return m_active; } - QQuickItem *target() const { return m_target; } + QQuickItem *target() const; void setTarget(QQuickItem *target); QQuickItem * parentItem() const { return static_cast<QQuickItem *>(QObject::parent()); } @@ -102,13 +102,14 @@ protected: void setGrab(QQuickEventPoint *point, bool grab); virtual void handleGrabCancel(QQuickEventPoint *point); QPointF eventPos(const QQuickEventPoint *point) const; - bool targetContains(const QQuickEventPoint *point) const; + bool parentContains(const QQuickEventPoint *point) const; private: QQuickPointerEvent *m_currentEvent; QQuickItem *m_target; bool m_enabled : 1; bool m_active : 1; + bool m_targetExplicitlySet : 1; friend class QQuickEventPoint; }; |