diff options
author | Mitch Curtis <mitch.curtis@theqtcompany.com> | 2015-04-21 13:41:33 +0200 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@digia.com> | 2015-04-21 12:20:01 +0000 |
commit | a663455c8c9f561f2380f3bffd3c51d3a41c6bff (patch) | |
tree | 61ae8d455c7efceceb754bf352ebf4c7e3730176 /src/quick/items/qquickdrag.cpp | |
parent | d185a5c204213347efea1203f053d551276d5c1f (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.cpp | 6 |
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(); |