summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2020-03-18 21:05:34 +0000
committerMike Krus <mike.krus@kdab.com>2020-03-24 05:43:28 +0000
commit0a8af876d1edb8b4cc23ce07828d086e1e4dbe22 (patch)
tree70e5dcba9dbfa0146faa8b340f1a130efc6769d1
parentcdc9efb609894298d8d854a0ec75f9cb8e89f195 (diff)
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 <paul.lemire@kdab.com>
-rw-r--r--src/input/backend/mouseeventfilter.cpp1
-rw-r--r--src/input/frontend/qmousehandler.cpp7
2 files changed, 5 insertions, 3 deletions
diff --git a/src/input/backend/mouseeventfilter.cpp b/src/input/backend/mouseeventfilter.cpp
index 618a64b15..6f741a941 100644
--- a/src/input/backend/mouseeventfilter.cpp
+++ b/src/input/backend/mouseeventfilter.cpp
@@ -76,6 +76,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<QMouseEvent *>(e)));
diff --git a/src/input/frontend/qmousehandler.cpp b/src/input/frontend/qmousehandler.cpp
index c36ac50f1..f08a7afe5 100644
--- a/src/input/frontend/qmousehandler.cpp
+++ b/src/input/frontend/qmousehandler.cpp
@@ -59,7 +59,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());
});
@@ -78,15 +78,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:
@@ -97,6 +97,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: