mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-02 15:45:21 +00:00
fix: 拖动任务栏上的图标移动后移除残留在桌面上
原因是手指操作存在多指操作,导致拖拽应用图标残留桌面 Log: 拖动任务栏上的图标移动后移除残留在桌面上 Bug: https://pms.uniontech.com/zentao/bug-view-40987.html Change-Id: Id1279ac0f8ca48f8242682740f1b91ea7926910b Reviewed-on: http://gerrit.uniontech.com/c/dde-dock/+/5595 Reviewed-by: <mailman@uniontech.com> Reviewed-by: fanpengcheng <fanpengcheng@uniontech.com> Tested-by: <mailman@uniontech.com>
This commit is contained in:
parent
777f8f5141
commit
9dfca71863
@ -141,38 +141,8 @@ void AppDragWidget::dragEnterEvent(QDragEnterEvent *event)
|
||||
|
||||
void AppDragWidget::dragMoveEvent(QDragMoveEvent *event)
|
||||
{
|
||||
bool model = true;
|
||||
Dock::Position pos = Dock::Position::Bottom;
|
||||
|
||||
DockPopupWindow *popup = m_popupWindow;
|
||||
if (isRemoveAble()) {
|
||||
QWidget *lastContent = popup->getContent();
|
||||
if (lastContent)
|
||||
lastContent->setVisible(false);
|
||||
|
||||
switch (pos) {
|
||||
case Top: popup->setArrowDirection(DockPopupWindow::ArrowTop); break;
|
||||
case Bottom: popup->setArrowDirection(DockPopupWindow::ArrowBottom); break;
|
||||
case Left: popup->setArrowDirection(DockPopupWindow::ArrowLeft); break;
|
||||
case Right: popup->setArrowDirection(DockPopupWindow::ArrowRight); break;
|
||||
}
|
||||
popup->resize(m_removeTips->sizeHint());
|
||||
popup->setContent(m_removeTips);
|
||||
|
||||
const QPoint p = popupMarkPoint(pos);
|
||||
if (!popup->isVisible())
|
||||
QMetaObject::invokeMethod(popup, "show", Qt::QueuedConnection, Q_ARG(QPoint, p), Q_ARG(bool, model));
|
||||
else
|
||||
popup->show(p, model);
|
||||
|
||||
m_object->setOpacity(0.5);
|
||||
m_animOpacity->setStartValue(0.5);
|
||||
} else {
|
||||
m_object->setOpacity(1.0);
|
||||
m_animOpacity->setStartValue(1.0);
|
||||
if (popup->isVisible())
|
||||
popup->setVisible(false);
|
||||
}
|
||||
Q_UNUSED(event);
|
||||
showRemoveTips();
|
||||
}
|
||||
|
||||
const QPoint AppDragWidget::topleftPoint() const
|
||||
@ -370,4 +340,46 @@ void AppDragWidget::enterEvent(QEvent *event)
|
||||
&& m_animGroup->state() != QParallelAnimationGroup::Running) {
|
||||
hide();
|
||||
}
|
||||
}
|
||||
|
||||
void AppDragWidget::showRemoveTips()
|
||||
{
|
||||
bool model = true;
|
||||
Dock::Position pos = Dock::Position::Bottom;
|
||||
|
||||
DockPopupWindow *popup = m_popupWindow;
|
||||
if (isRemoveAble()) {
|
||||
QWidget *lastContent = popup->getContent();
|
||||
if (lastContent)
|
||||
lastContent->setVisible(false);
|
||||
|
||||
switch (pos) {
|
||||
case Top: popup->setArrowDirection(DockPopupWindow::ArrowTop); break;
|
||||
case Bottom: popup->setArrowDirection(DockPopupWindow::ArrowBottom); break;
|
||||
case Left: popup->setArrowDirection(DockPopupWindow::ArrowLeft); break;
|
||||
case Right: popup->setArrowDirection(DockPopupWindow::ArrowRight); break;
|
||||
}
|
||||
popup->resize(m_removeTips->sizeHint());
|
||||
popup->setContent(m_removeTips);
|
||||
|
||||
const QPoint p = popupMarkPoint(pos);
|
||||
if (!popup->isVisible())
|
||||
QMetaObject::invokeMethod(popup, "show", Qt::QueuedConnection, Q_ARG(QPoint, p), Q_ARG(bool, model));
|
||||
else
|
||||
popup->show(p, model);
|
||||
|
||||
m_object->setOpacity(0.5);
|
||||
m_animOpacity->setStartValue(0.5);
|
||||
} else {
|
||||
m_object->setOpacity(1.0);
|
||||
m_animOpacity->setStartValue(1.0);
|
||||
if (popup->isVisible())
|
||||
popup->setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
void AppDragWidget::moveEvent(QMoveEvent *event)
|
||||
{
|
||||
Q_UNUSED(event);
|
||||
showRemoveTips();
|
||||
}
|
@ -55,7 +55,8 @@ protected:
|
||||
void dragMoveEvent(QDragMoveEvent *event) override;
|
||||
void dropEvent(QDropEvent *event) override;
|
||||
void hideEvent(QHideEvent *event) override;
|
||||
void enterEvent(QEvent *event);
|
||||
void moveEvent(QMoveEvent *event) override;
|
||||
void enterEvent(QEvent *event) override;
|
||||
|
||||
private:
|
||||
void initAnimations();
|
||||
@ -66,6 +67,7 @@ private:
|
||||
QAbstractAnimation::State oldState);
|
||||
const QPoint popupMarkPoint(Dock::Position pos);
|
||||
const QPoint topleftPoint() const;
|
||||
void showRemoveTips();
|
||||
|
||||
private:
|
||||
AppGraphicsObject *m_object;
|
||||
|
Loading…
x
Reference in New Issue
Block a user