From 648b990fc84c5359b7fe0e3a4d337906401243f2 Mon Sep 17 00:00:00 2001 From: xiechuan Date: Fri, 28 Aug 2020 18:47:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BB=BB=E5=8A=A1=E6=A0=8F=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E5=9B=BE=E6=A0=87=E6=97=B6=E6=8F=90=E7=A4=BA=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2D模式下,移除图标时,会使用一个新的图标,并缩小原来图标的大小,但设置鼠标拖动位置时判断图标错误,造成异常 Log: 修复2D模式下任务栏移除应用程序发现移除提示异常 Bug: https://pms.uniontech.com/zentao/bug-view-44994.html Change-Id: I3a5e148582d5792555603825c8ca281c84bc4b33 Reviewed-on: http://gerrit.uniontech.com/c/dde-dock/+/3026 Reviewed-by: Reviewed-by: fanpengcheng Reviewed-by: niecheng Tested-by: --- frame/item/components/appdragwidget.cpp | 8 ++++++-- frame/panel/mainpanelcontrol.cpp | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/frame/item/components/appdragwidget.cpp b/frame/item/components/appdragwidget.cpp index 38563df81..3353e3cc0 100644 --- a/frame/item/components/appdragwidget.cpp +++ b/frame/item/components/appdragwidget.cpp @@ -107,7 +107,11 @@ AppDragWidget::AppDragWidget(QWidget *parent) : m_followMouseTimer->setInterval(1); connect(m_followMouseTimer, &QTimer::timeout, [this] { QPoint destPos = QCursor::pos(); - move(destPos.x() - width() / 2, destPos.y() - height() / 2); + if (DWindowManagerHelper::instance()->hasComposite()) { + move(destPos.x() - width() / 2, destPos.y() - height() / 2); + } else { + move(destPos.x(), destPos.y()); //窗口特效未开启时会隐藏m_object绘制的图标,移动的图标为QDrag绘制的图标,大小为(10,10) + } }); m_followMouseTimer->start(); } @@ -297,7 +301,7 @@ void AppDragWidget::initConfigurations() const QByteArray &schema_id { cschema.toUtf8() }; - + const QByteArray &path_id { cpath.toUtf8() }; diff --git a/frame/panel/mainpanelcontrol.cpp b/frame/panel/mainpanelcontrol.cpp index aa8f17d55..e48648b34 100755 --- a/frame/panel/mainpanelcontrol.cpp +++ b/frame/panel/mainpanelcontrol.cpp @@ -695,11 +695,12 @@ void MainPanelControl::startDrag(DockItem *item) } drag = appDrag; + drag->setHotSpot(dragPix.rect().center() / dragPix.devicePixelRatioF()); } else { drag = new QDrag(item); drag->setPixmap(pixmap); + drag->setHotSpot(pixmap.rect().center() / pixmap.devicePixelRatioF()); } - drag->setHotSpot(pixmap.rect().center() / pixmap.devicePixelRatioF()); drag->setMimeData(new QMimeData); drag->exec(Qt::MoveAction);