From 92edbd20603dfe2c6b68e0023b76aa9bbab89688 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 2 Jun 2011 23:19:36 +0200 Subject: 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 --- src/gui/kernel/qdnd.cpp | 4 +++- src/gui/kernel/qplatformdrag_qpa.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'src') 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; -- cgit v1.2.3