summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/winrt/qwinrtscreen.cpp
diff options
context:
space:
mode:
authorMaurice Kalinowski <maurice.kalinowski@theqtcompany.com>2016-03-30 09:42:34 +0200
committerMaurice Kalinowski <maurice.kalinowski@qt.io>2016-05-31 11:53:46 +0000
commit0ff45fbf1b9a6ab6da2541bb70533e49dc892954 (patch)
tree00f28a292dde730b12b298324663dbea4033a2a8 /src/plugins/platforms/winrt/qwinrtscreen.cpp
parented08e3be340ff0592ea6e11435d9546db4a9366f (diff)
winrt: Enable drop support
Allow Qt applications to receive drops. Dragging is not supported yet and will be handled in a separate commit. Task-number: QTBUG-50827 Change-Id: I684e3d5685ce73f74805691f6ac7bbc45e2d19ec Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'src/plugins/platforms/winrt/qwinrtscreen.cpp')
-rw-r--r--src/plugins/platforms/winrt/qwinrtscreen.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/plugins/platforms/winrt/qwinrtscreen.cpp b/src/plugins/platforms/winrt/qwinrtscreen.cpp
index 0255527e91..3d9baf555d 100644
--- a/src/plugins/platforms/winrt/qwinrtscreen.cpp
+++ b/src/plugins/platforms/winrt/qwinrtscreen.cpp
@@ -39,6 +39,7 @@
#include "qwinrtbackingstore.h"
#include "qwinrtinputcontext.h"
#include "qwinrtcursor.h"
+#include "qwinrtdrag.h"
#include "qwinrtwindow.h"
#include <private/qeventdispatcher_winrt_p.h>
@@ -553,6 +554,9 @@ QWinRTScreen::QWinRTScreen()
ComPtr<Xaml::IUIElement> uiElement;
hr = canvas.As(&uiElement);
Q_ASSERT_SUCCEEDED(hr);
+#if _MSC_VER >= 1900
+ QWinRTDrag::instance()->setUiElement(uiElement);
+#endif
hr = window->put_Content(uiElement.Get());
Q_ASSERT_SUCCEEDED(hr);
hr = canvas.As(&d->canvas);
@@ -761,6 +765,10 @@ void QWinRTScreen::addWindow(QWindow *window)
QWindowSystemInterface::handleWindowActivated(window, Qt::OtherFocusReason);
handleExpose();
QWindowSystemInterface::flushWindowSystemEvents();
+
+#if _MSC_VER >= 1900
+ QWinRTDrag::instance()->setDropTarget(window);
+#endif
}
void QWinRTScreen::removeWindow(QWindow *window)
@@ -775,6 +783,10 @@ void QWinRTScreen::removeWindow(QWindow *window)
QWindowSystemInterface::handleWindowActivated(window, Qt::OtherFocusReason);
handleExpose();
QWindowSystemInterface::flushWindowSystemEvents();
+#if _MSC_VER >= 1900
+ if (wasTopWindow)
+ QWinRTDrag::instance()->setDropTarget(topWindow());
+#endif
}
void QWinRTScreen::raise(QWindow *window)