diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-05-20 22:27:51 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-05-26 19:56:03 +0200 |
commit | 15654f20a20d08fbba8b6444d1a556cbaa68fa4e (patch) | |
tree | c7f19e8d6ab554ec9278a1bb543a018d90b65c2c | |
parent | f65fac151469570ff5b751a46ab0c175e3f670fb (diff) |
Remove handleTouch/MouseEvent helpers from QQuickWindowPrivate
They are only called by QQuickOverlay, so move the logic there,
respecting the overlay's possible sub-scene delivery agent instead of
hard-wiring the event delivery to the QQuickWindow.
Change-Id: I629cc2cefb8757a876323d64de035bda92f24e5d
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
-rw-r--r-- | src/quick/items/qquickwindow_p.h | 13 | ||||
-rw-r--r-- | src/quicktemplates2/qquickoverlay.cpp | 10 |
2 files changed, 8 insertions, 15 deletions
diff --git a/src/quick/items/qquickwindow_p.h b/src/quick/items/qquickwindow_p.h index 60a39406e8..b310cf3035 100644 --- a/src/quick/items/qquickwindow_p.h +++ b/src/quick/items/qquickwindow_p.h @@ -249,19 +249,6 @@ public: { return QQuickDeliveryAgentPrivate::dragOverThreshold(d, axis, event, startDragThreshold); } void clearFocusInScope(QQuickItem *scope, QQuickItem *item, Qt::FocusReason reason) { deliveryAgentPrivate()->clearFocusInScope(scope, item, reason); } - void handleTouchEvent(QTouchEvent *e) - { - // setup currentEventDeliveryAgent like in QQuickDeliveryAgent::event - QQuickDeliveryAgentPrivate::currentEventDeliveryAgent = deliveryAgentPrivate()->q_func(); - deliveryAgentPrivate()->handleTouchEvent(e); - QQuickDeliveryAgentPrivate::currentEventDeliveryAgent = nullptr; - } - void handleMouseEvent(QMouseEvent *e) - { - QQuickDeliveryAgentPrivate::currentEventDeliveryAgent = deliveryAgentPrivate()->q_func(); - deliveryAgentPrivate()->handleMouseEvent(e); - QQuickDeliveryAgentPrivate::currentEventDeliveryAgent = nullptr; - } // ^^^ currently in use in Controls 2; TODO remove // data property diff --git a/src/quicktemplates2/qquickoverlay.cpp b/src/quicktemplates2/qquickoverlay.cpp index e96b3a9847..8e39db490c 100644 --- a/src/quicktemplates2/qquickoverlay.cpp +++ b/src/quicktemplates2/qquickoverlay.cpp @@ -546,7 +546,10 @@ bool QQuickOverlay::eventFilter(QObject *object, QEvent *event) } } - QQuickWindowPrivate::get(d->window)->handleTouchEvent(static_cast<QTouchEvent *>(event)); + // setup currentEventDeliveryAgent like in QQuickDeliveryAgent::event + QQuickDeliveryAgentPrivate::currentEventDeliveryAgent = d->deliveryAgent(); + d->deliveryAgentPrivate()->handleTouchEvent(static_cast<QTouchEvent *>(event)); + QQuickDeliveryAgentPrivate::currentEventDeliveryAgent = nullptr; // If a touch event hasn't been accepted after being delivered, there // were no items interested in touch events at any of the touch points. @@ -563,7 +566,10 @@ bool QQuickOverlay::eventFilter(QObject *object, QEvent *event) #endif emit pressed(); - QQuickWindowPrivate::get(d->window)->handleMouseEvent(static_cast<QMouseEvent *>(event)); + // setup currentEventDeliveryAgent like in QQuickDeliveryAgent::event + QQuickDeliveryAgentPrivate::currentEventDeliveryAgent = d->deliveryAgent(); + d->deliveryAgentPrivate()->handleMouseEvent(static_cast<QMouseEvent *>(event)); + QQuickDeliveryAgentPrivate::currentEventDeliveryAgent = nullptr; // If a mouse event hasn't been accepted after being delivered, there // was no item interested in mouse events at the mouse point. Make sure |