summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@nokia.com>2011-06-02 23:19:36 +0200
committerLars Knoll <lars.knoll@nokia.com>2011-06-07 15:50:53 +0200
commit92edbd20603dfe2c6b68e0023b76aa9bbab89688 (patch)
tree62a026a8b6eeecf0cc7a23dd7f4dc8da0e68808c /src/gui
parent28391442e7455bd4ae4b636773bd2b044575491f (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.cpp4
-rw-r--r--src/gui/kernel/qplatformdrag_qpa.h1
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;