diff options
author | Michal Klocek <michal.klocek@theqtcompany.com> | 2016-04-20 13:32:03 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2016-04-20 11:51:56 +0000 |
commit | 9c8dab537819f0d999e680490c2d125b8836cbbb (patch) | |
tree | 47167adea4d8fbe9e4ac193413e315dd621aaf8f /src/quick/items/qquickmousearea.cpp | |
parent | d50a57f408a9cc160c187c012f51b8fa89738858 (diff) |
Revert "Fixed MouseArea threshold with preventStealing"
This reverts commit e1400b5b4d8311769ad3b9f631479ee2b0271197,
which breaks qtlocation unit tests for drag support.
It is no longer possible to drag markers in mapviewer.
Task-number: QTBUG-52534
Change-Id: If713a8e45f64ea898f38fe3e39561ebc266403b2
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Diffstat (limited to 'src/quick/items/qquickmousearea.cpp')
-rw-r--r-- | src/quick/items/qquickmousearea.cpp | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/quick/items/qquickmousearea.cpp b/src/quick/items/qquickmousearea.cpp index d66e55aa12..ef053abbd1 100644 --- a/src/quick/items/qquickmousearea.cpp +++ b/src/quick/items/qquickmousearea.cpp @@ -52,7 +52,7 @@ DEFINE_BOOL_CONFIG_OPTION(qmlVisualTouchDebugging, QML_VISUAL_TOUCH_DEBUGGING) QQuickMouseAreaPrivate::QQuickMouseAreaPrivate() : enabled(true), scrollGestureEnabled(true), hovered(false), longPress(false), moved(false), stealMouse(false), doubleClick(false), preventStealing(false), - propagateComposedEvents(false), overThreshold(false), pressed(0) + propagateComposedEvents(false), pressed(0) #ifndef QT_NO_DRAGANDDROP , drag(0) #endif @@ -715,7 +715,7 @@ void QQuickMouseArea::mouseMoveEvent(QMouseEvent *event) curLocalPos = event->windowPos(); } - if (keepMouseGrab() && d->stealMouse && d->overThreshold && !d->drag->active()) + if (keepMouseGrab() && d->stealMouse && !d->drag->active()) d->drag->setActive(true); QPointF startPos = d->drag->target()->parentItem() @@ -741,17 +741,14 @@ void QQuickMouseArea::mouseMoveEvent(QMouseEvent *event) if (d->drag->active()) d->drag->target()->setPosition(dragPos); - if (!d->overThreshold && (QQuickWindowPrivate::dragOverThreshold(dragPos.x() - startPos.x(), Qt::XAxis, event, d->drag->threshold()) - || QQuickWindowPrivate::dragOverThreshold(dragPos.y() - startPos.y(), Qt::YAxis, event, d->drag->threshold()))) - { - d->overThreshold = true; - if (d->drag->smoothed()) - d->startScene = event->windowPos(); - } - - if (!keepMouseGrab() && d->overThreshold) { + if (!keepMouseGrab() + && (QQuickWindowPrivate::dragOverThreshold(dragPos.x() - startPos.x(), Qt::XAxis, event, d->drag->threshold()) + || QQuickWindowPrivate::dragOverThreshold(dragPos.y() - startPos.y(), Qt::YAxis, event, d->drag->threshold()))) { setKeepMouseGrab(true); d->stealMouse = true; + + if (d->drag->smoothed()) + d->startScene = event->windowPos(); } d->moved = true; @@ -770,7 +767,6 @@ void QQuickMouseArea::mouseReleaseEvent(QMouseEvent *event) { Q_D(QQuickMouseArea); d->stealMouse = false; - d->overThreshold = false; if (!d->enabled && !d->pressed) { QQuickItem::mouseReleaseEvent(event); } else { @@ -879,7 +875,6 @@ void QQuickMouseArea::ungrabMouse() d->pressed = 0; d->stealMouse = false; d->doubleClick = false; - d->overThreshold = false; setKeepMouseGrab(false); #ifndef QT_NO_DRAGANDDROP |