summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2017-08-30 09:56:28 +0200
committerSean Harmer <sean.harmer@kdab.com>2017-08-30 11:24:43 +0000
commitb28133bcb9aab23d687af57e250b3af155a6eede (patch)
treedc1a85c624f9e44275e17b58521a8303e8e14cf0
parent85f22204273600ad1958192efd1729bd829509f4 (diff)
Fix hover event handling
HoverMove is not a QMouseEvent. So we generate a fake one and send it for picking processing. Task-number: QTBUG-58607 Change-Id: Iaa06bfe49494db1a46cc021747fd5d0026330525 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r--src/render/picking/pickeventfilter.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/render/picking/pickeventfilter.cpp b/src/render/picking/pickeventfilter.cpp
index 19d3b6b6e..297911e45 100644
--- a/src/render/picking/pickeventfilter.cpp
+++ b/src/render/picking/pickeventfilter.cpp
@@ -40,6 +40,7 @@
#include "pickeventfilter_p.h"
#include <QtCore/QMutexLocker>
+#include <QtGui/QHoverEvent>
QT_BEGIN_NAMESPACE
@@ -87,11 +88,17 @@ bool PickEventFilter::eventFilter(QObject *obj, QEvent *e)
switch (e->type()) {
case QEvent::MouseButtonPress:
case QEvent::MouseButtonRelease:
- case QEvent::MouseMove:
- case QEvent::HoverMove: {
+ case QEvent::MouseMove: {
QMutexLocker locker(&m_mutex);
m_pendingMouseEvents.push_back(QMouseEvent(*static_cast<QMouseEvent *>(e)));
} break;
+ case QEvent::HoverMove: {
+ QMutexLocker locker(&m_mutex);
+ QHoverEvent *he = static_cast<QHoverEvent *>(e);
+ m_pendingMouseEvents.push_back(QMouseEvent(QEvent::MouseMove,
+ he->pos(), Qt::NoButton, Qt::NoButton,
+ he->modifiers()));
+ } break;
case QEvent::KeyPress:
case QEvent::KeyRelease: {
QMutexLocker locker(&m_mutex);