diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/handlers/qquickpointerhandler.cpp | 14 | ||||
-rw-r--r-- | src/quick/handlers/qquickpointerhandler_p.h | 3 |
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; |