From 662c47d6e9c806f6c0d654e7ecce9a66a4f35154 Mon Sep 17 00:00:00 2001 From: Mike Krus Date: Wed, 18 Mar 2020 21:05:34 +0000 Subject: Implement Mouse Click and Double Click on MouseHandler Looks like it actually never worked. Task-number: QTBUG-75219 Change-Id: I54e7c58be57c41461c95c48ec3e76aa45bf340a1 Reviewed-by: Paul Lemire --- src/input/backend/mouseeventfilter.cpp | 1 + src/input/frontend/qmousehandler.cpp | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/input') diff --git a/src/input/backend/mouseeventfilter.cpp b/src/input/backend/mouseeventfilter.cpp index 48b30725a..baa78ac25 100644 --- a/src/input/backend/mouseeventfilter.cpp +++ b/src/input/backend/mouseeventfilter.cpp @@ -77,6 +77,7 @@ bool MouseEventFilter::eventFilter(QObject *obj, QEvent *e) } case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: + case QEvent::MouseButtonDblClick: case QEvent::MouseMove: // Creates copy and store event to be processed later on in an InputAspect job m_inputHandler->appendMouseEvent(QMouseEvent(*static_cast(e))); diff --git a/src/input/frontend/qmousehandler.cpp b/src/input/frontend/qmousehandler.cpp index 89d76a057..068fe1964 100644 --- a/src/input/frontend/qmousehandler.cpp +++ b/src/input/frontend/qmousehandler.cpp @@ -58,7 +58,7 @@ QMouseHandlerPrivate::QMouseHandlerPrivate() { m_shareable = false; m_pressAndHoldTimer->setSingleShot(true); - m_pressAndHoldTimer->setInterval(500); + m_pressAndHoldTimer->setInterval(800); QObject::connect(m_pressAndHoldTimer, &QTimer::timeout, [this] { emit q_func()->pressAndHold(m_lastPressedEvent.data()); }); @@ -77,15 +77,15 @@ void QMouseHandlerPrivate::mouseEvent(const QMouseEventPtr &event) { Q_Q(QMouseHandler); switch (event->type()) { - case QEvent::MouseButtonPress: { + case QEvent::MouseButtonPress: m_lastPressedEvent = event; m_pressAndHoldTimer->start(); emit q->pressed(event.data()); break; - } case QEvent::MouseButtonRelease: m_pressAndHoldTimer->stop(); emit q->released(event.data()); + emit q->clicked(event.data()); break; #if QT_CONFIG(gestures) case QEvent::Gesture: @@ -96,6 +96,7 @@ void QMouseHandlerPrivate::mouseEvent(const QMouseEventPtr &event) emit q->doubleClicked(event.data()); break; case QEvent::MouseMove: + m_pressAndHoldTimer->stop(); emit q->positionChanged(event.data()); break; default: -- cgit v1.2.3