3#include <QCoreApplication>
6#include <QtQuick/private/qquickdeliveryagent_p_p.h>
7#include <QtQuick/private/qquickitem_p.h>
10namespace qml_material::pointer_delivery
12inline std::unique_ptr<QPointerEvent> cloneForWindow(QPointerEvent* event) {
13 return std::unique_ptr<QPointerEvent>(QQuickDeliveryAgentPrivate::clonePointerEvent(
14 event, event->points().first().scenePosition()));
17inline void send(QQuickItem* owner, QQuickWindow* window, QPointerEvent* event) {
18 auto* agent = QQuickItemPrivate::get(owner)->deliveryAgent();
20 QPointer<QQuickDeliveryAgent> guard(agent);
21 auto* state = QQuickItemPrivate::get(owner)->deliveryAgentPrivate();
22 const bool filtering = state->allowChildEventFiltering;
23 state->allowChildEventFiltering =
false;
24 QCoreApplication::sendEvent(window, event);
25 if (guard) state->allowChildEventFiltering = filtering;