aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2022-05-20 22:27:51 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2022-05-26 19:56:03 +0200
commit15654f20a20d08fbba8b6444d1a556cbaa68fa4e (patch)
treec7f19e8d6ab554ec9278a1bb543a018d90b65c2c
parentf65fac151469570ff5b751a46ab0c175e3f670fb (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.h13
-rw-r--r--src/quicktemplates2/qquickoverlay.cpp10
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