summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/platforms/winrt/qwinrtdrag.cpp7
-rw-r--r--src/plugins/platforms/winrt/winrt.pro4
2 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/platforms/winrt/qwinrtdrag.cpp b/src/plugins/platforms/winrt/qwinrtdrag.cpp
index 14bea7ab30..2ef50aa4e2 100644
--- a/src/plugins/platforms/winrt/qwinrtdrag.cpp
+++ b/src/plugins/platforms/winrt/qwinrtdrag.cpp
@@ -623,6 +623,7 @@ Qt::DropAction QWinRTDrag::drag(QDrag *drag)
hr = dataPackage->put_RequestedOperation(translateFromQDragDropActions(action));
Q_ASSERT_SUCCEEDED(hr);
+#ifndef QT_WINRT_LIMITED_DRAGANDDROP
ComPtr<IDragStartingEventArgs2> args2;
hr = args->QueryInterface(IID_PPV_ARGS(&args2));
Q_ASSERT_SUCCEEDED(hr);
@@ -637,7 +638,7 @@ Qt::DropAction QWinRTDrag::drag(QDrag *drag)
allowedOperations |= DataPackageOperation_Link;
hr = args2->put_AllowedOperations(allowedOperations);
Q_ASSERT_SUCCEEDED(hr);
-
+#endif // QT_WINRT_LIMITED_DRAGANDDROP
QMimeData *mimeData = drag->mimeData();
if (mimeData->hasText()) {
hr = dataPackage->SetText(qStringToHString(mimeData->text()).Get());
@@ -811,6 +812,7 @@ void QWinRTDrag::handleNativeDragEvent(IInspectable *sender, ABI::Windows::UI::X
DragDropModifiers modifiers;
hr = e2->get_Modifiers(&modifiers);
+#ifndef QT_WINRT_LIMITED_DRAGANDDROP
ComPtr<IDragEventArgs3> e3;
hr = e->QueryInterface(IID_PPV_ARGS(&e3));
Q_ASSERT_SUCCEEDED(hr);
@@ -821,6 +823,9 @@ void QWinRTDrag::handleNativeDragEvent(IInspectable *sender, ABI::Windows::UI::X
qCDebug(lcQpaMime) << __FUNCTION__ << "Could not query drag operations";
const Qt::DropActions actions = translateToQDragDropActions(dataOp);
+#else // !QT_WINRT_LIMITED_DRAGANDDROP
+ const Qt::DropActions actions = Qt::LinkAction | Qt::CopyAction | Qt::MoveAction;;
+#endif // !QT_WINRT_LIMITED_DRAGANDDROP
ComPtr<IDataPackageView> dataView;
hr = e2->get_DataView(&dataView);
diff --git a/src/plugins/platforms/winrt/winrt.pro b/src/plugins/platforms/winrt/winrt.pro
index dd1e051c33..f5591934f5 100644
--- a/src/plugins/platforms/winrt/winrt.pro
+++ b/src/plugins/platforms/winrt/winrt.pro
@@ -49,6 +49,10 @@ HEADERS = \
OTHER_FILES += winrt.json
+WINRT_SDK_VERSION_STRING = $$(UCRTVersion)
+WINRT_SDK_VERSION = $$member($$list($$split(WINRT_SDK_VERSION_STRING, .)), 2)
+lessThan(WINRT_SDK_VERSION, 14322): DEFINES += QT_WINRT_LIMITED_DRAGANDDROP
+
*-msvc2013|contains(DEFINES, QT_NO_DRAGANDDROP) {
SOURCES -= qwinrtdrag.cpp
HEADERS -= qwinrtdrag.h