summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-04-25 13:44:23 +0200
committerFredrik Orderud <forderud@gmail.com>2016-06-07 20:20:51 +0000
commitfcea0310a307a4adf36f382806b34ff1ee3eb913 (patch)
tree53974d1857e5239d83877ecbd1aeb29fc2ccb4f3
parent0384f29809186e6a45b13760c9dbb2f8cd3bf251 (diff)
MouseEventFilter: handle HoverMove events
When using Scene3D, there are no MouseMove events. Instead there are HoverMove events being generated. For that reason we intercept these to allow the MouseHandlers to receive positionChanged events when used with Scene3D Change-Id: I638a86a1b574e3f99163e0b1b13cb47c83acdc1e Reviewed-by: Sean Harmer <sean.harmer@kdab.com> (cherry picked from commit dd2710011fd1cf840de0ab194bf74ca65f112221) Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r--src/input/backend/mouseeventfilter.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/input/backend/mouseeventfilter.cpp b/src/input/backend/mouseeventfilter.cpp
index fcf8eb922..ccfc4981d 100644
--- a/src/input/backend/mouseeventfilter.cpp
+++ b/src/input/backend/mouseeventfilter.cpp
@@ -61,6 +61,14 @@ bool MouseEventFilter::eventFilter(QObject *obj, QEvent *e)
{
Q_UNUSED(obj);
switch (e->type()) {
+ // When dealing with QtQuick events, there are nove MouseMove events
+ // only hover events which are transmitted if hoverEnabled was set to true on the Scene3D
+ case QEvent::HoverMove:
+ {
+ const QHoverEvent *event = static_cast<QHoverEvent *>(e);
+ m_inputHandler->appendMouseEvent(QMouseEvent(QEvent::MouseMove, event->posF(), Qt::NoButton, Qt::NoButton, event->modifiers()));
+ break;
+ }
case QEvent::MouseButtonPress:
case QEvent::MouseButtonRelease:
case QEvent::MouseMove: