From 60c333cabaf7514790c35f382a9f7f074fb7c20c Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Mon, 4 Jan 2016 16:10:03 +0100 Subject: QMacPanGestureRecognizer - stop timer on 'reset' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _panTimer has a target - for example, widget. 'reset' should stop this timer. The problem (quite subtle and difficult to reproduce) found in tst_QTouchEvent: widgets created/destoryed by different tests but we still can have a timer waiting for event dispatcher to 'processEvents', firing with now-invalid dangling pointer - 'target'. Change-Id: Iccaf3368a8ee6a0a2f60e9dcdf5d40fb7392ca21 Task-number: QTBUG-49844 Reviewed-by: Morten Johan Sørvig --- src/widgets/kernel/qmacgesturerecognizer.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/widgets/kernel/qmacgesturerecognizer.cpp b/src/widgets/kernel/qmacgesturerecognizer.cpp index 47003f5866..9f55e23cee 100644 --- a/src/widgets/kernel/qmacgesturerecognizer.cpp +++ b/src/widgets/kernel/qmacgesturerecognizer.cpp @@ -256,6 +256,7 @@ void QMacPanGestureRecognizer::reset(QGesture *gesture) QPanGesture *g = static_cast(gesture); _startPos = QPointF(); _panCanceled = true; + _panTimer.stop(); g->setOffset(QPointF(0, 0)); g->setLastOffset(QPointF(0, 0)); g->setAcceleration(qreal(1)); -- cgit v1.2.3