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);