diff --git a/src/gui/kernel/qdnd.cpp b/src/gui/kernel/qdnd.cpp index ae2f3779a8..793c2e87d5 100644 --- a/src/gui/kernel/qdnd.cpp +++ b/src/gui/kernel/qdnd.cpp @@ -473,7 +473,7 @@ Qt::DropAction QDragManager::drag(QDrag *o) oldstate = Qt::NoModifier; // #### Should use state that caused the drag // drag_mode = mode; - possible_actions = dragPrivate()->possible_actions; + possible_actions = dragPrivate()->possible_actions; willDrop = false; object->d_func()->target = 0; @@ -487,6 +487,8 @@ Qt::DropAction QDragManager::drag(QDrag *o) #endif updatePixmap(); + platformDrag->startDrag(); + eventLoop = new QEventLoop; (void) eventLoop->exec(); delete eventLoop; diff --git a/src/gui/kernel/qplatformdrag_qpa.h b/src/gui/kernel/qplatformdrag_qpa.h index 16d8363b03..eac17ed2a6 100644 --- a/src/gui/kernel/qplatformdrag_qpa.h +++ b/src/gui/kernel/qplatformdrag_qpa.h @@ -56,6 +56,7 @@ public: virtual QMimeData *platformDropData() = 0; + virtual void startDrag() {}; virtual void move(const QMouseEvent *me) = 0; virtual void drop(const QMouseEvent *me) = 0; virtual void cancel() = 0;