diff options
author | Sebastian Sauer <sebastian.sauer@kdab.com> | 2014-06-28 02:09:19 +0700 |
---|---|---|
committer | Niels Weber <niels.weber@theqtcompany.com> | 2016-01-28 14:38:08 +0000 |
commit | 570c848e6d546d35b408770e1b1d1d954268d519 (patch) | |
tree | 8a8dc32060e76155bca383545e0cc2ca3fc2009b /src | |
parent | c2ef3674a334c4c7283f3dfb413cba496fa292de (diff) |
Fix rejecting drag enter events in QML DropArea
Don't initiate a drag and drop if the event was rejected.
What happens is:
QQuickDropArea::dragEnterEvent() sets d->containsDrag = true
QQuickDropArea::dragLeaveEvent() sets d->containsDrag = false
HOWEVER, when the enter event is rejected, the leave event is
never delivered, and the drop area remains blocked because it
thinks the first drag action is not done yet.
Change-Id: I74c53fbe778c954e4aa2f22f393318c4938a5afe
Task-number: QTBUG-39453
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquickdroparea.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/quick/items/qquickdroparea.cpp b/src/quick/items/qquickdroparea.cpp index e1b33b4660..b8006eedaf 100644 --- a/src/quick/items/qquickdroparea.cpp +++ b/src/quick/items/qquickdroparea.cpp @@ -264,6 +264,8 @@ void QQuickDropArea::dragEnterEvent(QDragEnterEvent *event) QQuickDropEvent dragTargetEvent(d, event); emit entered(&dragTargetEvent); + if (!event->isAccepted()) + return; d->containsDrag = true; if (QQuickDragMimeData *dragMime = qobject_cast<QQuickDragMimeData *>(const_cast<QMimeData *>(mimeData))) |