aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/declarative/items/qsgcanvas.cpp34
-rw-r--r--src/declarative/items/qsgcanvas_p.h2
-rw-r--r--src/declarative/items/qsgflickable.cpp2
-rw-r--r--src/declarative/items/qsgflickable_p.h2
-rw-r--r--src/declarative/items/qsgitem.cpp4
-rw-r--r--src/declarative/items/qsgitem.h2
-rw-r--r--src/declarative/items/qsgitem_p.h2
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 *);