aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/quick/handlers/qquickpointerhandler.cpp14
-rw-r--r--src/quick/handlers/qquickpointerhandler_p.h3
2 files changed, 14 insertions, 3 deletions
diff --git a/src/quick/handlers/qquickpointerhandler.cpp b/src/quick/handlers/qquickpointerhandler.cpp
index c0815a5a27..293eae914e 100644
--- a/src/quick/handlers/qquickpointerhandler.cpp
+++ b/src/quick/handlers/qquickpointerhandler.cpp
@@ -122,10 +122,20 @@ void QQuickPointerHandler::setTarget(QQuickItem *target)
emit targetChanged();
}
+void QQuickPointerHandler::handlePointerEvent(QQuickPointerEvent *event)
+{
+ if (wantsPointerEvent(event))
+ handlePointerEventImpl(event);
+}
+
+bool QQuickPointerHandler::wantsPointerEvent(QQuickPointerEvent *event)
+{
+ Q_UNUSED(event)
+ return m_enabled;
+}
+
void QQuickPointerHandler::handlePointerEventImpl(QQuickPointerEvent *event)
{
- if (!m_enabled)
- return;
m_currentEvent = event;
}
diff --git a/src/quick/handlers/qquickpointerhandler_p.h b/src/quick/handlers/qquickpointerhandler_p.h
index 7f335146c0..ada77d8eaa 100644
--- a/src/quick/handlers/qquickpointerhandler_p.h
+++ b/src/quick/handlers/qquickpointerhandler_p.h
@@ -77,7 +77,7 @@ public:
QQuickItem *target() const { return m_target; }
void setTarget(QQuickItem *target);
- void handlePointerEvent(QQuickPointerEvent *event) { handlePointerEventImpl(event); }
+ void handlePointerEvent(QQuickPointerEvent *event);
Q_SIGNALS:
void enabledChanged();
@@ -85,6 +85,7 @@ Q_SIGNALS:
protected:
QQuickPointerEvent *currentEvent() { return m_currentEvent; }
+ virtual bool wantsPointerEvent(QQuickPointerEvent *event);
virtual void handlePointerEventImpl(QQuickPointerEvent *event);
void setGrab(QQuickEventPoint *point, bool grab);
QPointF eventPos(const QQuickEventPoint *point) const;