diff options
Diffstat (limited to 'src/quick/items')
-rw-r--r-- | src/quick/items/qquickflickable.cpp | 14 | ||||
-rw-r--r-- | src/quick/items/qquickflickable_p.h | 2 | ||||
-rw-r--r-- | src/quick/items/qquickflickable_p_p.h | 4 | ||||
-rw-r--r-- | src/quick/items/qquickitem_p.h | 2 |
4 files changed, 18 insertions, 4 deletions
diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp index 85045be411..cf882e8c9e 100644 --- a/src/quick/items/qquickflickable.cpp +++ b/src/quick/items/qquickflickable.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtQuick module of the Qt Toolkit. @@ -61,6 +61,8 @@ QT_BEGIN_NAMESPACE +Q_DECLARE_LOGGING_CATEGORY(lcHandlerParent) + // FlickThreshold determines how far the "mouse" must have moved // before we perform a flick. static const int FlickThreshold = 15; @@ -1897,6 +1899,8 @@ void QQuickFlickablePrivate::data_append(QQmlListProperty<QObject> *prop, QObjec { if (QQuickItem *i = qmlobject_cast<QQuickItem *>(o)) { i->setParentItem(static_cast<QQuickFlickablePrivate*>(prop->data)->contentItem); + } else if (QQuickPointerHandler *pointerHandler = qmlobject_cast<QQuickPointerHandler *>(o)) { + static_cast<QQuickFlickablePrivate*>(prop->data)->addPointerHandler(pointerHandler); } else { o->setParent(prop->object); // XXX todo - do we want this? } @@ -2356,6 +2360,14 @@ void QQuickFlickablePrivate::cancelInteraction() } } +void QQuickFlickablePrivate::addPointerHandler(QQuickPointerHandler *h) +{ + Q_Q(const QQuickFlickable); + qCDebug(lcHandlerParent) << "reparenting handler" << h << "to contentItem of" << q; + h->setParent(contentItem); + QQuickItemPrivate::get(contentItem)->addPointerHandler(h); +} + /*! QQuickFlickable::filterMouseEvent checks filtered mouse events and potentially steals them. diff --git a/src/quick/items/qquickflickable_p.h b/src/quick/items/qquickflickable_p.h index b7c4fa5b67..f21fe94177 100644 --- a/src/quick/items/qquickflickable_p.h +++ b/src/quick/items/qquickflickable_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtQuick module of the Qt Toolkit. diff --git a/src/quick/items/qquickflickable_p_p.h b/src/quick/items/qquickflickable_p_p.h index c538cf7878..835c54170f 100644 --- a/src/quick/items/qquickflickable_p_p.h +++ b/src/quick/items/qquickflickable_p_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtQuick module of the Qt Toolkit. @@ -206,6 +206,8 @@ public: void cancelInteraction(); + void addPointerHandler(QQuickPointerHandler *h) override; + public: QQuickItem *contentItem; diff --git a/src/quick/items/qquickitem_p.h b/src/quick/items/qquickitem_p.h index 4ca3a01d02..771228914b 100644 --- a/src/quick/items/qquickitem_p.h +++ b/src/quick/items/qquickitem_p.h @@ -281,7 +281,7 @@ public: bool hasPointerHandlers() const; bool hasHoverHandlers() const; - void addPointerHandler(QQuickPointerHandler *h); + virtual void addPointerHandler(QQuickPointerHandler *h); // data property static void data_append(QQmlListProperty<QObject> *, QObject *); |