diff options
-rw-r--r-- | src/declarative/items/qsgcanvas.cpp | 34 | ||||
-rw-r--r-- | src/declarative/items/qsgcanvas_p.h | 2 | ||||
-rw-r--r-- | src/declarative/items/qsgflickable.cpp | 2 | ||||
-rw-r--r-- | src/declarative/items/qsgflickable_p.h | 2 | ||||
-rw-r--r-- | src/declarative/items/qsgitem.cpp | 4 | ||||
-rw-r--r-- | src/declarative/items/qsgitem.h | 2 | ||||
-rw-r--r-- | src/declarative/items/qsgitem_p.h | 2 |
7 files changed, 20 insertions, 28 deletions
diff --git a/src/declarative/items/qsgcanvas.cpp b/src/declarative/items/qsgcanvas.cpp index 343a7e1dd2..c9f3285492 100644 --- a/src/declarative/items/qsgcanvas.cpp +++ b/src/declarative/items/qsgcanvas.cpp @@ -1296,7 +1296,7 @@ bool QSGCanvasPrivate::deliverHoverEvent(QSGItem *item, QGraphicsSceneHoverEvent return false; } -bool QSGCanvasPrivate::deliverWheelEvent(QSGItem *item, QGraphicsSceneWheelEvent *event) +bool QSGCanvasPrivate::deliverWheelEvent(QSGItem *item, QWheelEvent *event) { Q_Q(QSGCanvas); QSGItemPrivate *itemPrivate = QSGItemPrivate::get(item); @@ -1304,7 +1304,7 @@ bool QSGCanvasPrivate::deliverWheelEvent(QSGItem *item, QGraphicsSceneWheelEvent return false; if (itemPrivate->flags & QSGItem::ItemClipsChildrenToShape) { - QPointF p = item->mapFromScene(event->scenePos()); + QPointF p = item->mapFromScene(event->pos()); if (!QRectF(0, 0, item->width(), item->height()).contains(p)) return false; } @@ -1318,13 +1318,15 @@ bool QSGCanvasPrivate::deliverWheelEvent(QSGItem *item, QGraphicsSceneWheelEvent return true; } - QPointF p = item->mapFromScene(event->scenePos()); + QPointF p = item->mapFromScene(event->pos()); if (QRectF(0, 0, item->width(), item->height()).contains(p)) { - event->setPos(itemPrivate->canvasToItemTransform().map(event->scenePos())); - event->accept(); - q->sendEvent(item, event); - if (event->isAccepted()) + QWheelEvent wheel(p, event->delta(), event->buttons(), event->modifiers(), event->orientation()); + wheel.accept(); + q->sendEvent(item, &wheel); + if (wheel.isAccepted()) { + event->accept(); return true; + } } return false; @@ -1337,18 +1339,8 @@ void QSGCanvas::wheelEvent(QWheelEvent *event) #ifdef MOUSE_DEBUG qWarning() << "QSGCanvas::wheelEvent()" << event->pos() << event->delta() << event->orientation(); #endif - QGraphicsSceneWheelEvent wheelEvent(QEvent::GraphicsSceneWheel); - wheelEvent.setWidget(this); - wheelEvent.setScenePos(event->pos()); - wheelEvent.setScreenPos(event->globalPos()); - wheelEvent.setButtons(event->buttons()); - wheelEvent.setModifiers(event->modifiers()); - wheelEvent.setDelta(event->delta()); - wheelEvent.setOrientation(event->orientation()); - wheelEvent.setAccepted(false); - - d->deliverWheelEvent(d->rootItem, &wheelEvent); - event->setAccepted(wheelEvent.isAccepted()); + event->ignore(); + d->deliverWheelEvent(d->rootItem, event); } #endif // QT_NO_WHEELEVENT @@ -1635,8 +1627,8 @@ bool QSGCanvas::sendEvent(QSGItem *item, QEvent *e) } } break; - case QEvent::GraphicsSceneWheel: - QSGItemPrivate::get(item)->deliverWheelEvent(static_cast<QGraphicsSceneWheelEvent *>(e)); + case QEvent::Wheel: + QSGItemPrivate::get(item)->deliverWheelEvent(static_cast<QWheelEvent *>(e)); break; case QEvent::GraphicsSceneHoverEnter: case QEvent::GraphicsSceneHoverLeave: diff --git a/src/declarative/items/qsgcanvas_p.h b/src/declarative/items/qsgcanvas_p.h index c4c82b666c..a5baba6f1b 100644 --- a/src/declarative/items/qsgcanvas_p.h +++ b/src/declarative/items/qsgcanvas_p.h @@ -110,7 +110,7 @@ public: bool deliverInitialMousePressEvent(QSGItem *, QGraphicsSceneMouseEvent *); bool deliverMouseEvent(QGraphicsSceneMouseEvent *); bool sendFilteredMouseEvent(QSGItem *, QSGItem *, QGraphicsSceneMouseEvent *); - bool deliverWheelEvent(QSGItem *, QGraphicsSceneWheelEvent *); + bool deliverWheelEvent(QSGItem *, QWheelEvent *); bool deliverTouchPoints(QSGItem *, QTouchEvent *, const QList<QTouchEvent::TouchPoint> &, QSet<int> *, QHash<QSGItem *, QList<QTouchEvent::TouchPoint> > *); bool deliverTouchEvent(QTouchEvent *); diff --git a/src/declarative/items/qsgflickable.cpp b/src/declarative/items/qsgflickable.cpp index 48beef8422..ed29994696 100644 --- a/src/declarative/items/qsgflickable.cpp +++ b/src/declarative/items/qsgflickable.cpp @@ -794,7 +794,7 @@ void QSGFlickable::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) } } -void QSGFlickable::wheelEvent(QGraphicsSceneWheelEvent *event) +void QSGFlickable::wheelEvent(QWheelEvent *event) { Q_D(QSGFlickable); if (!d->interactive) { diff --git a/src/declarative/items/qsgflickable_p.h b/src/declarative/items/qsgflickable_p.h index c1ed024527..a20b93de73 100644 --- a/src/declarative/items/qsgflickable_p.h +++ b/src/declarative/items/qsgflickable_p.h @@ -183,7 +183,7 @@ protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - virtual void wheelEvent(QGraphicsSceneWheelEvent *event); + virtual void wheelEvent(QWheelEvent *event); virtual void timerEvent(QTimerEvent *event); QSGFlickableVisibleArea *visibleArea(); diff --git a/src/declarative/items/qsgitem.cpp b/src/declarative/items/qsgitem.cpp index 9bbed05dd5..84e57053eb 100644 --- a/src/declarative/items/qsgitem.cpp +++ b/src/declarative/items/qsgitem.cpp @@ -1664,7 +1664,7 @@ void QSGItem::mouseUngrabEvent() // XXX todo } -void QSGItem::wheelEvent(QGraphicsSceneWheelEvent *event) +void QSGItem::wheelEvent(QWheelEvent *event) { event->ignore(); } @@ -2140,7 +2140,7 @@ void QSGItemPrivate::deliverMouseEvent(QGraphicsSceneMouseEvent *e) } } -void QSGItemPrivate::deliverWheelEvent(QGraphicsSceneWheelEvent *e) +void QSGItemPrivate::deliverWheelEvent(QWheelEvent *e) { Q_Q(QSGItem); q->wheelEvent(e); diff --git a/src/declarative/items/qsgitem.h b/src/declarative/items/qsgitem.h index 995b5cbcd1..0505a36e85 100644 --- a/src/declarative/items/qsgitem.h +++ b/src/declarative/items/qsgitem.h @@ -359,7 +359,7 @@ protected: virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); virtual void mouseUngrabEvent(); // XXX todo - params? - virtual void wheelEvent(QGraphicsSceneWheelEvent *event); + virtual void wheelEvent(QWheelEvent *event); virtual void touchEvent(QTouchEvent *event); virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event); virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event); diff --git a/src/declarative/items/qsgitem_p.h b/src/declarative/items/qsgitem_p.h index 0b3348d7fc..062df2b8ea 100644 --- a/src/declarative/items/qsgitem_p.h +++ b/src/declarative/items/qsgitem_p.h @@ -321,7 +321,7 @@ public: void deliverInputMethodEvent(QInputMethodEvent *); void deliverFocusEvent(QFocusEvent *); void deliverMouseEvent(QGraphicsSceneMouseEvent *); - void deliverWheelEvent(QGraphicsSceneWheelEvent *); + void deliverWheelEvent(QWheelEvent *); void deliverTouchEvent(QTouchEvent *); void deliverHoverEvent(QGraphicsSceneHoverEvent *); void deliverDragEvent(QSGDragEvent *); |