diff options
author | Liang Qi <liang.qi@qt.io> | 2016-06-30 08:10:08 +0200 |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@qt.io> | 2016-06-30 10:20:40 +0200 |
commit | cddeb1c7c0e9d02c5f5542d7d12b4fa992bfb050 (patch) | |
tree | c377fea4c9ffc0c6aff9619698ad95773e648e94 /src/client/qwaylanddatadevice.cpp | |
parent | 1723bf4fc62a43c4dd0e7724aab6231c0309c114 (diff) | |
parent | 00a65be5ae8e1253ed6fd1f2e1df745f4c319de5 (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
src/client/qwaylandinputcontext_p.h
src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.h
src/hardwareintegration/client/wayland-egl/qwaylandglcontext.h
src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxcontext.h
Change-Id: Iac517e1985e4e67d7ca00ca4c10dcda9dd9079f9
Diffstat (limited to 'src/client/qwaylanddatadevice.cpp')
-rw-r--r-- | src/client/qwaylanddatadevice.cpp | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/src/client/qwaylanddatadevice.cpp b/src/client/qwaylanddatadevice.cpp index 9cc4217ff..afc8849b3 100644 --- a/src/client/qwaylanddatadevice.cpp +++ b/src/client/qwaylanddatadevice.cpp @@ -156,31 +156,29 @@ void QWaylandDataDevice::data_device_enter(uint32_t serial, wl_surface *surface, m_dragWindow = QWaylandWindow::fromWlSurface(surface)->window(); m_dragPoint = calculateDragPosition(x, y, m_dragWindow); - QDrag *drag = static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->currentDrag(); - QMimeData *dragData = Q_NULLPTR; Qt::DropActions supportedActions; + + m_dragOffer.reset(static_cast<QWaylandDataOffer *>(wl_data_offer_get_user_data(id))); + QDrag *drag = static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->currentDrag(); if (drag) { dragData = drag->mimeData(); supportedActions = drag->supportedActions(); - } else { - m_dragOffer.reset(static_cast<QWaylandDataOffer *>(wl_data_offer_get_user_data(id))); - if (m_dragOffer) { - dragData = m_dragOffer->mimeData(); - supportedActions = Qt::CopyAction | Qt::MoveAction | Qt::LinkAction; - } + } else if (m_dragOffer) { + dragData = m_dragOffer->mimeData(); + supportedActions = Qt::CopyAction | Qt::MoveAction | Qt::LinkAction; } const QPlatformDragQtResponse &response = QWindowSystemInterface::handleDrag(m_dragWindow, dragData, m_dragPoint, supportedActions); if (drag) { static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->setResponse(response); + } + + if (response.isAccepted()) { + wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, m_dragOffer->firstFormat().toUtf8().constData()); } else { - if (response.isAccepted()) { - wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, m_dragOffer->firstFormat().toUtf8().constData()); - } else { - wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, 0); - } + wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, 0); } } @@ -219,12 +217,12 @@ void QWaylandDataDevice::data_device_motion(uint32_t time, wl_fixed_t x, wl_fixe if (drag) { static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->setResponse(response); + } + + if (response.isAccepted()) { + wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, m_dragOffer->firstFormat().toUtf8().constData()); } else { - if (response.isAccepted()) { - wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, m_dragOffer->firstFormat().toUtf8().constData()); - } else { - wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, 0); - } + wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, 0); } } |