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>
This commit is contained in:
parent
c2ef3674a3
commit
570c848e6d
|
@ -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)))
|
||||
|
|
Loading…
Reference in New Issue