on xenial help sign in
DirectionalDragArea: Reset status if disabled while dragging
commit7c8f6fbb81458ff33fbf6c7117f25560c1c2fc8d authorDaniel d'Andrada <daniel.dandrada@canonical.com> dateMon 24 Feb 2014, 13:25 (13 years ago) parenta7b64d9
2 files changed+10
plugins/Ubuntu/Gestures/DirectionalDragArea.cpp+9 plugins/Ubuntu/Gestures/DirectionalDragArea.h+1
plugins/Ubuntu/Gestures/DirectionalDragArea.cpp+9
@@ -129,6 +129,8 @@ DirectionalDragArea::DirectionalDragArea(QQuickItem *parent)
129129 m_recognitionTimer->setInterval(60);
130130
131131 m_velocityCalculator = new AxisVelocityCalculator(this);
132+
133+ connect(this, &QQuickItem::enabledChanged, this, &DirectionalDragArea::onEnabledChanged);
132134}
133135
134136Direction::Type DirectionalDragArea::direction() const
@@ -528,6 +530,13 @@ void DirectionalDragArea::checkSpeed()
528530 m_numSamplesOnLastSpeedCheck = m_velocityCalculator->numSamples();
529531}
530532
533+void DirectionalDragArea::onEnabledChanged()
534+{
535+ if (!isEnabled() && m_status != WaitingForTouch) {
536+ setStatus(WaitingForTouch);
537+ }
538+}
539+
531540void DirectionalDragArea::setStatus(DirectionalDragArea::Status newStatus)
532541{
533542 if (newStatus == m_status)
plugins/Ubuntu/Gestures/DirectionalDragArea.h+1
@@ -218,6 +218,7 @@ protected:
218218
219219private Q_SLOTS:
220220 void checkSpeed();
221+ void onEnabledChanged();
221222
222223private:
223224 void touchEvent_absent(QTouchEvent *event);