diff options
author | Mike Krus <mike.krus@kdab.com> | 2017-08-30 09:56:28 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2017-08-30 11:24:43 +0000 |
commit | b28133bcb9aab23d687af57e250b3af155a6eede (patch) | |
tree | dc1a85c624f9e44275e17b58521a8303e8e14cf0 | |
parent | 85f22204273600ad1958192efd1729bd829509f4 (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.cpp | 11 |
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); |