From 570c848e6d546d35b408770e1b1d1d954268d519 Mon Sep 17 00:00:00 2001 From: Sebastian Sauer Date: Sat, 28 Jun 2014 02:09:19 +0700 Subject: [PATCH] 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 Reviewed-by: Gunnar Sletta --- src/quick/items/qquickdroparea.cpp | 2 ++ 1 file changed, 2 insertions(+) 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(const_cast(mimeData)))