aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickdrag.cpp
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@theqtcompany.com>2015-04-21 13:41:33 +0200
committerMitch Curtis <mitch.curtis@digia.com>2015-04-21 12:20:01 +0000
commita663455c8c9f561f2380f3bffd3c51d3a41c6bff (patch)
tree61ae8d455c7efceceb754bf352ebf4c7e3730176 /src/quick/items/qquickdrag.cpp
parentd185a5c204213347efea1203f053d551276d5c1f (diff)
XCB: respect QPlatformDrag::ownsDragObject().
In a Qt Quick application on X11, QDrag events were deleted before their data could be passed to an external application. There was a function introduced recently to account for this problem, so we should use that instead. Change-Id: If74dd32bb8c7aa7c2e3160448af546d2e8640528 Task-number: QTBUG-45604 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Diffstat (limited to 'src/quick/items/qquickdrag.cpp')
-rw-r--r--src/quick/items/qquickdrag.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/quick/items/qquickdrag.cpp b/src/quick/items/qquickdrag.cpp
index 64e46d1762..4d46485718 100644
--- a/src/quick/items/qquickdrag.cpp
+++ b/src/quick/items/qquickdrag.cpp
@@ -33,6 +33,9 @@
#include "qquickdrag_p.h"
+#include <private/qguiapplication_p.h>
+#include <qpa/qplatformintegration.h>
+#include <qpa/qplatformdrag.h>
#include <private/qquickitem_p.h>
#include <QtQuick/private/qquickevents_p_p.h>
#include <private/qquickitemchangelistener_p.h>
@@ -724,7 +727,8 @@ Qt::DropAction QQuickDragAttachedPrivate::startDrag(Qt::DropActions supportedAct
Qt::DropAction dropAction = drag->exec(supportedActions);
- delete drag;
+ if (!QGuiApplicationPrivate::platformIntegration()->drag()->ownsDragObject())
+ drag->deleteLater();
deliverLeaveEvent();