From 54593f553874a0026a4b68740e706eec28049dc2 Mon Sep 17 00:00:00 2001 From: listenerri Date: Wed, 8 Aug 2018 11:35:08 +0800 Subject: [PATCH] fix: drag widget follow the mouse all the time Change-Id: I2bd2cd0cf397979f1780b3d010961dcdc53f9a3a --- frame/item/components/appdragwidget.cpp | 7 +++++++ frame/item/components/appdragwidget.h | 1 + 2 files changed, 8 insertions(+) diff --git a/frame/item/components/appdragwidget.cpp b/frame/item/components/appdragwidget.cpp index eb6c0f935..99c2de44d 100644 --- a/frame/item/components/appdragwidget.cpp +++ b/frame/item/components/appdragwidget.cpp @@ -94,6 +94,13 @@ AppDragWidget::AppDragWidget(QWidget *parent) : AppDragWidget::~AppDragWidget() { } +void AppDragWidget::mouseMoveEvent(QMouseEvent *event) +{ + QGraphicsView::mouseMoveEvent(event); + // hide widget when receiving mouseMoveEvent because this means drag-and-drop has been finished + hide(); +} + void AppDragWidget::dragEnterEvent(QDragEnterEvent *event) { event->accept(); diff --git a/frame/item/components/appdragwidget.h b/frame/item/components/appdragwidget.h index 84e7cf903..f5eb769f4 100644 --- a/frame/item/components/appdragwidget.h +++ b/frame/item/components/appdragwidget.h @@ -45,6 +45,7 @@ public: void setDockInfo(Dock::Position dockPosition, const QRect &dockGeometry); protected: + void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE; void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE; void dragMoveEvent(QDragMoveEvent *event) Q_DECL_OVERRIDE; void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;