diff options
author | Lars Knoll <lars.knoll@nokia.com> | 2011-06-02 23:19:36 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@nokia.com> | 2011-06-07 15:50:53 +0200 |
commit | 92edbd20603dfe2c6b68e0023b76aa9bbab89688 (patch) | |
tree | 62a026a8b6eeecf0cc7a23dd7f4dc8da0e68808c /src/gui | |
parent | 28391442e7455bd4ae4b636773bd2b044575491f (diff) |
Add a startDrag to QPlatformDrag
This can be used to initialize data
when a drag starts. The Xdnd implementation
at least has a need for it.
Reviewed-by: Samuel
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/kernel/qdnd.cpp | 4 | ||||
-rw-r--r-- | src/gui/kernel/qplatformdrag_qpa.h | 1 |
2 files changed, 4 insertions, 1 deletions
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; |