aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquickwindow.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index b80e62f28c..533e698e22 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -3176,18 +3176,17 @@ bool QQuickWindowPrivate::sendFilteredPointerEventImpl(QPointerEvent *event, QQu
if (filteringParent->filtersChildMouseEvents() && !hasFiltered.contains(filteringParent)) {
hasFiltered.append(filteringParent);
if (isMouseEvent(event)) {
- auto me = static_cast<QMouseEvent *>(event);
if (receiver->acceptedMouseButtons()) {
const bool wasAccepted = event->allPointsAccepted();
Q_ASSERT(event->pointCount());
localizePointerEvent(event, receiver);
event->setAccepted(true);
auto oldMouseGrabber = event->exclusiveGrabber(event->point(0));
- if (filteringParent->childMouseEventFilter(receiver, const_cast<QMouseEvent *>(me))) {
+ if (filteringParent->childMouseEventFilter(receiver, event)) {
qCDebug(DBG_MOUSE) << "mouse event intercepted by childMouseEventFilter of " << filteringParent;
skipDelivery.append(filteringParent);
filtered = true;
- if (me->isAccepted() && me->isBeginEvent()) {
+ if (event->isAccepted() && event->isBeginEvent()) {
auto &point = event->point(0);
auto mouseGrabber = event->exclusiveGrabber(point);
if (mouseGrabber && mouseGrabber != receiver && mouseGrabber != oldMouseGrabber) {
@@ -3198,13 +3197,12 @@ bool QQuickWindowPrivate::sendFilteredPointerEventImpl(QPointerEvent *event, QQu
}
} else {
// Restore accepted state if the event was not filtered.
- const_cast<QMouseEvent *>(me)->setAccepted(wasAccepted);
+ event->setAccepted(wasAccepted);
}
}
} else if (isTouchEvent(event)) {
- auto te = static_cast<QTouchEvent *>(event);
bool acceptsTouchEvents = receiver->acceptTouchEvents();
- auto device = te->device();
+ auto device = event->device();
if (device->type() == QInputDevice::DeviceType::TouchPad &&
device->capabilities().testFlag(QInputDevice::Capability::MouseEmulation)) {
qCDebug(DBG_TOUCH_TARGET) << "skipping filtering of synth-mouse event from" << device;
@@ -3212,13 +3210,13 @@ bool QQuickWindowPrivate::sendFilteredPointerEventImpl(QPointerEvent *event, QQu
// get a touch event customized for delivery to filteringParent
// TODO should not be necessary? because QQuickWindowPrivate::deliverMatchingPointsToItem() does it
QTouchEvent filteringParentTouchEvent =
- QQuickItemPrivate::get(receiver)->localizedTouchEvent(te, true);
+ QQuickItemPrivate::get(receiver)->localizedTouchEvent(static_cast<QTouchEvent *>(event), true);
if (filteringParentTouchEvent.type() != QEvent::None) {
if (filteringParent->childMouseEventFilter(receiver, &filteringParentTouchEvent)) {
qCDebug(DBG_TOUCH) << "touch event intercepted by childMouseEventFilter of " << filteringParent;
skipDelivery.append(filteringParent);
for (auto point : filteringParentTouchEvent.points())
- te->setExclusiveGrabber(point, filteringParent);
+ event->setExclusiveGrabber(point, filteringParent);
return true;
}
else if (Q_LIKELY(QCoreApplication::testAttribute(Qt::AA_SynthesizeMouseForUnhandledTouchEvents))) {