summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/kernel/qevent_p.h3
-rw-r--r--src/widgets/graphicsview/qgraphicsview.cpp7
-rw-r--r--src/widgets/graphicsview/qgraphicsview_p.h4
3 files changed, 7 insertions, 7 deletions
diff --git a/src/gui/kernel/qevent_p.h b/src/gui/kernel/qevent_p.h
index 7c9974db7f..a776b957a5 100644
--- a/src/gui/kernel/qevent_p.h
+++ b/src/gui/kernel/qevent_p.h
@@ -84,7 +84,8 @@ static_assert(sizeof(QMutableTouchEvent) == sizeof(QTouchEvent));
class Q_GUI_EXPORT QMutableSinglePointEvent : public QSinglePointEvent
{
public:
- QMutableSinglePointEvent(Type type, const QPointingDevice *device, const QEventPoint &point,
+ QMutableSinglePointEvent(const QSinglePointEvent &other) : QSinglePointEvent(other) {}
+ QMutableSinglePointEvent(Type type = QEvent::None, const QPointingDevice *device = nullptr, const QEventPoint &point = QEventPoint(),
Qt::MouseButton button = Qt::NoButton, Qt::MouseButtons buttons = Qt::NoButton,
Qt::KeyboardModifiers modifiers = Qt::NoModifier,
Qt::MouseEventSource source = Qt::MouseEventSynthesizedByQt) :
diff --git a/src/widgets/graphicsview/qgraphicsview.cpp b/src/widgets/graphicsview/qgraphicsview.cpp
index 7c7c094962..847d5fd45c 100644
--- a/src/widgets/graphicsview/qgraphicsview.cpp
+++ b/src/widgets/graphicsview/qgraphicsview.cpp
@@ -340,7 +340,6 @@ QGraphicsViewPrivate::QGraphicsViewPrivate()
hasUpdateClip(false),
mousePressButton(Qt::NoButton),
leftIndent(0), topIndent(0),
- lastMouseEvent(QEvent::None, QPointF(), QPointF(), QPointF(), Qt::NoButton, { }, { }),
alignment(Qt::AlignCenter),
transformationAnchor(QGraphicsView::AnchorViewCenter), resizeAnchor(QGraphicsView::NoAnchor),
viewportUpdateMode(QGraphicsView::MinimalViewportUpdate),
@@ -628,7 +627,8 @@ void QGraphicsViewPrivate::replayLastMouseEvent()
{
if (!useLastMouseEvent || !scene)
return;
- mouseMoveEventHandler(&lastMouseEvent);
+ QSinglePointEvent *spe = static_cast<QSinglePointEvent *>(&lastMouseEvent);
+ mouseMoveEventHandler(static_cast<QMouseEvent *>(spe));
}
/*!
@@ -637,8 +637,7 @@ void QGraphicsViewPrivate::replayLastMouseEvent()
void QGraphicsViewPrivate::storeMouseEvent(QMouseEvent *event)
{
useLastMouseEvent = true;
- lastMouseEvent = QMouseEvent(QEvent::MouseMove, event->position(), event->scenePosition(), event->globalPosition(),
- event->button(), event->buttons(), event->modifiers());
+ lastMouseEvent = *event;
}
void QGraphicsViewPrivate::mouseMoveEventHandler(QMouseEvent *event)
diff --git a/src/widgets/graphicsview/qgraphicsview_p.h b/src/widgets/graphicsview/qgraphicsview_p.h
index 8a8f6bf880..0b137e91dc 100644
--- a/src/widgets/graphicsview/qgraphicsview_p.h
+++ b/src/widgets/graphicsview/qgraphicsview_p.h
@@ -54,7 +54,7 @@
#include <QtWidgets/private/qtwidgetsglobal_p.h>
#include "qgraphicsview.h"
-#include <QtGui/qevent.h>
+#include <QtGui/private/qevent_p.h>
#include <QtCore/qcoreapplication.h>
#include "qgraphicssceneevent.h"
#include <QtWidgets/qstyleoption.h>
@@ -123,7 +123,7 @@ public:
qreal topIndent;
// Replaying mouse events
- QMouseEvent lastMouseEvent;
+ QMutableSinglePointEvent lastMouseEvent;
void replayLastMouseEvent();
void storeMouseEvent(QMouseEvent *event);
void mouseMoveEventHandler(QMouseEvent *event);