mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +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)
|
void AppDragWidget::dragMoveEvent(QDragMoveEvent *event)
|
||||||
{
|
{
|
||||||
bool model = true;
|
Q_UNUSED(event);
|
||||||
Dock::Position pos = Dock::Position::Bottom;
|
showRemoveTips();
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const QPoint AppDragWidget::topleftPoint() const
|
const QPoint AppDragWidget::topleftPoint() const
|
||||||
@ -370,4 +340,46 @@ void AppDragWidget::enterEvent(QEvent *event)
|
|||||||
&& m_animGroup->state() != QParallelAnimationGroup::Running) {
|
&& m_animGroup->state() != QParallelAnimationGroup::Running) {
|
||||||
hide();
|
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 dragMoveEvent(QDragMoveEvent *event) override;
|
||||||
void dropEvent(QDropEvent *event) override;
|
void dropEvent(QDropEvent *event) override;
|
||||||
void hideEvent(QHideEvent *event) override;
|
void hideEvent(QHideEvent *event) override;
|
||||||
void enterEvent(QEvent *event);
|
void moveEvent(QMoveEvent *event) override;
|
||||||
|
void enterEvent(QEvent *event) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void initAnimations();
|
void initAnimations();
|
||||||
@ -66,6 +67,7 @@ private:
|
|||||||
QAbstractAnimation::State oldState);
|
QAbstractAnimation::State oldState);
|
||||||
const QPoint popupMarkPoint(Dock::Position pos);
|
const QPoint popupMarkPoint(Dock::Position pos);
|
||||||
const QPoint topleftPoint() const;
|
const QPoint topleftPoint() const;
|
||||||
|
void showRemoveTips();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AppGraphicsObject *m_object;
|
AppGraphicsObject *m_object;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user