aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/handlers/qquickpointerhandler_p.h
diff options
context:
space:
mode:
authorJan Arve Saether <jan-arve.saether@qt.io>2016-12-23 15:30:33 +0100
committerJan Arve Sæther <jan-arve.saether@qt.io>2016-12-29 10:27:49 +0000
commit70113ef66b245e58ce12e2a9d26268e2eaeb3a42 (patch)
treec3882090db4e76aac1e5c5e7c8da13b41db4806c /src/quick/handlers/qquickpointerhandler_p.h
parent953b5070160a3a1bed7aaf986a1bb1c3b33b0dca (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.h7
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;
};