@@ -31,8 +31,8 @@ public:
32 virtual int interval() const { return m_timer.interval(); }
32 virtual int interval() const { return m_timer.interval(); }
33 virtual void setInterval(int msecs) { m_timer.setInterval(msecs); }
33 virtual void setInterval(int msecs) { m_timer.setInterval(msecs); }
34− virtual void start() { m_timer.start(); }
34+ virtual void start() { m_timer.start(); UbuntuGestures::AbstractTimer::start(); }
35− virtual void stop() { m_timer.stop(); }
35+ virtual void stop() { m_timer.stop(); UbuntuGestures::AbstractTimer::stop(); }
37 QTimer m_timer;
37 QTimer m_timer;
@@ -120,14 +120,13 @@ void DirectionalDragArea::setMaxSilenceTime(int value)
121void DirectionalDragArea::setRecognitionTimer(UbuntuGestures::AbstractTimer *timer)
121void DirectionalDragArea::setRecognitionTimer(UbuntuGestures::AbstractTimer *timer)
123− // NB: We assume test code (the only client of this method) won't call it while
124− // the current timer is active
126 int interval = 0;
123 int interval = 0;
124+ bool timerWasRunning = false;
128 // can be null when called from the constructor
126 // can be null when called from the constructor
129 if (m_recognitionTimer) {
127 if (m_recognitionTimer) {
130 interval = m_recognitionTimer->interval();
128 interval = m_recognitionTimer->interval();
129+ timerWasRunning = m_recognitionTimer->isRunning();
131 if (m_recognitionTimer->parent() == this) {
130 if (m_recognitionTimer->parent() == this) {
132 delete m_recognitionTimer;
131 delete m_recognitionTimer;
@@ -137,6 +136,9 @@ void DirectionalDragArea::setRecognitionTimer(UbuntuGestures::AbstractTimer *tim
137 timer->setInterval(interval);
136 timer->setInterval(interval);
138 connect(timer, &UbuntuGestures::AbstractTimer::timeout,
137 connect(timer, &UbuntuGestures::AbstractTimer::timeout,
139 this, &DirectionalDragArea::checkSpeed);
138 this, &DirectionalDragArea::checkSpeed);
139+ if (timerWasRunning) {
140+ m_recognitionTimer->start();
142void DirectionalDragArea::setAxisVelocityCalculator(AxisVelocityCalculator *newVelCalc)
144void DirectionalDragArea::setAxisVelocityCalculator(AxisVelocityCalculator *newVelCalc)