summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuilhem Vallat <guilhem.vallat@gmail.com>2017-08-25 12:46:23 +0200
committerSean Harmer <sean.harmer@kdab.com>2017-08-25 15:36:19 +0000
commit595b4add0ce6f32bb8ffc56b3a59e6e5bf0b000a (patch)
tree9b87068e81652597ccda72274ddc128633d44ab9
parentad58631a946cd733a34b04634270eb1ac74941bc (diff)
QMouseHandler: Add a parent to the internal timer
Without it the timer is leaked and doesn't follow the mouse handler when move from a thread to another. Task-number: QTBUG-62779 Change-Id: I34afc36165d2bbbce626d6c2c74f9408a319a7cb Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/input/frontend/qmousehandler.cpp7
-rw-r--r--src/input/frontend/qmousehandler_p.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/src/input/frontend/qmousehandler.cpp b/src/input/frontend/qmousehandler.cpp
index 61708425a..9f30810a9 100644
--- a/src/input/frontend/qmousehandler.cpp
+++ b/src/input/frontend/qmousehandler.cpp
@@ -69,6 +69,11 @@ QMouseHandlerPrivate::~QMouseHandlerPrivate()
{
}
+void QMouseHandlerPrivate::init(QObject *parent)
+{
+ m_pressAndHoldTimer->setParent(parent);
+}
+
void QMouseHandlerPrivate::mouseEvent(const QMouseEventPtr &event)
{
Q_Q(QMouseHandler);
@@ -259,6 +264,8 @@ void QMouseHandlerPrivate::mouseEvent(const QMouseEventPtr &event)
QMouseHandler::QMouseHandler(QNode *parent)
: QComponent(*new QMouseHandlerPrivate, parent)
{
+ Q_D(QMouseHandler);
+ d->init(this);
}
QMouseHandler::~QMouseHandler()
diff --git a/src/input/frontend/qmousehandler_p.h b/src/input/frontend/qmousehandler_p.h
index bb82334a0..3b2f2284d 100644
--- a/src/input/frontend/qmousehandler_p.h
+++ b/src/input/frontend/qmousehandler_p.h
@@ -70,6 +70,8 @@ public:
QMouseHandlerPrivate();
~QMouseHandlerPrivate();
+ void init(QObject *parent);
+
QMouseDevice *m_mouseDevice;
bool m_containsMouse;
QScopedPointer<QTimer> m_pressAndHoldTimer;