diff --git a/src/plugins/platforms/wayland/qwaylanddnd.cpp b/src/plugins/platforms/wayland/qwaylanddnd.cpp index a84b749e6aa..b59ac6d704c 100644 --- a/src/plugins/platforms/wayland/qwaylanddnd.cpp +++ b/src/plugins/platforms/wayland/qwaylanddnd.cpp @@ -74,6 +74,7 @@ void QWaylandDrag::startDrag() QBasicDrag::startDrag(); QWaylandWindow *icon = static_cast(shapedPixmapWindow()->handle()); m_display->currentInputDevice()->dataDevice()->startDrag(drag()->mimeData(), icon); + icon->addAttachOffset(-drag()->hotSpot()); } void QWaylandDrag::cancel() diff --git a/src/plugins/platforms/wayland/qwaylandwindow.cpp b/src/plugins/platforms/wayland/qwaylandwindow.cpp index 3146f70b3a8..da067dc9231 100644 --- a/src/plugins/platforms/wayland/qwaylandwindow.cpp +++ b/src/plugins/platforms/wayland/qwaylandwindow.cpp @@ -905,6 +905,11 @@ void QWaylandWindow::requestUpdate() mUpdateRequested = true; } +void QWaylandWindow::addAttachOffset(const QPoint point) +{ + mOffset += point; +} + } QT_END_NAMESPACE diff --git a/src/plugins/platforms/wayland/qwaylandwindow_p.h b/src/plugins/platforms/wayland/qwaylandwindow_p.h index 57f4657bb16..f36f0833ba9 100644 --- a/src/plugins/platforms/wayland/qwaylandwindow_p.h +++ b/src/plugins/platforms/wayland/qwaylandwindow_p.h @@ -197,6 +197,7 @@ public: bool setKeyboardGrabEnabled(bool) Q_DECL_OVERRIDE { return false; } void propagateSizeHints() Q_DECL_OVERRIDE { } + void addAttachOffset(const QPoint point); void requestUpdate() Q_DECL_OVERRIDE;