mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
bugfix: disable item enter-event when menu or preview show
Change-Id: I3c8b5790b3fe01d726f771c448e24a614f2121c1
This commit is contained in:
parent
229fa218a1
commit
6b6f582162
Notes:
Deepin Code Review
2016-06-14 07:19:47 +00:00
Verified+1: Anonymous Coward #1000004 Code-Review+2: <mr.asianwang@gmail.com> Submitted-by: <mr.asianwang@gmail.com> Submitted-at: Sat, 10 Oct 2015 19:47:18 +0800 Reviewed-on: https://cr.deepin.io/7663 Project: dde/dde-dock Branch: refs/heads/master
@ -55,7 +55,8 @@ void PluginItemWrapper::enterEvent(QEvent *)
|
||||
{
|
||||
emit mouseEntered();
|
||||
|
||||
showPreview();
|
||||
if (hoverable())
|
||||
showPreview();
|
||||
}
|
||||
|
||||
void PluginItemWrapper::leaveEvent(QEvent *)
|
||||
|
@ -445,6 +445,9 @@ void Panel::showPanelMenu()
|
||||
QPoint tmpPos = QCursor::pos();
|
||||
|
||||
PanelMenu::instance()->showMenu(tmpPos.x(),tmpPos.y());
|
||||
|
||||
m_appLayout->itemHoverableChange(false);
|
||||
m_pluginLayout->itemHoverableChange(false);
|
||||
}
|
||||
|
||||
void Panel::loadResources()
|
||||
|
@ -81,6 +81,16 @@ QPoint AbstractDockItem::getNextPos()
|
||||
{
|
||||
return m_itemNextPos;
|
||||
}
|
||||
bool AbstractDockItem::hoverable() const
|
||||
{
|
||||
return m_hoverable;
|
||||
}
|
||||
|
||||
void AbstractDockItem::setHoverable(bool hoverable)
|
||||
{
|
||||
m_hoverable = hoverable;
|
||||
}
|
||||
|
||||
|
||||
void AbstractDockItem::setNextPos(const QPoint &value)
|
||||
{
|
||||
@ -187,6 +197,9 @@ void AbstractDockItem::showMenu()
|
||||
m_dbusMenu = new DBusMenu(op.path(), this);
|
||||
|
||||
connect(m_dbusMenu, &DBusMenu::ItemInvoked, this, &AbstractDockItem::invokeMenuItem);
|
||||
connect(m_dbusMenu, &DBusMenu::MenuUnregistered, [=] {
|
||||
setHoverable(true);
|
||||
});
|
||||
|
||||
QJsonObject targetObj;
|
||||
targetObj.insert("x", QJsonValue(globalX() + width() / 2));
|
||||
@ -195,6 +208,8 @@ void AbstractDockItem::showMenu()
|
||||
targetObj.insert("menuJsonContent", QJsonValue(getMenuContent()));
|
||||
|
||||
m_dbusMenu->ShowMenu(QString(QJsonDocument(targetObj).toJson()));
|
||||
|
||||
setHoverable(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -55,6 +55,9 @@ public:
|
||||
QPoint globalPos();
|
||||
QPoint getNextPos();
|
||||
|
||||
bool hoverable() const;
|
||||
void setHoverable(bool hoverable);
|
||||
|
||||
signals:
|
||||
void dragStart();
|
||||
void dragEntered(QDragEnterEvent * event);
|
||||
@ -75,6 +78,7 @@ signals:
|
||||
protected:
|
||||
bool m_moveable = true;
|
||||
bool m_isActived = false;
|
||||
bool m_hoverable = true;
|
||||
PreviewFrame *m_titlePreview = NULL;
|
||||
HighlightEffect * m_highlight = NULL;
|
||||
ItemTitleLabel *m_titleLabel = NULL;
|
||||
|
@ -310,6 +310,9 @@ void AppItem::onMouseRelease(QMouseEvent *event)
|
||||
|
||||
void AppItem::onMouseEnter()
|
||||
{
|
||||
if (!hoverable())
|
||||
return;
|
||||
|
||||
emit mouseEntered();
|
||||
m_appBackground->setIsHovered(true);
|
||||
showPreview();
|
||||
|
@ -41,6 +41,7 @@ void DockLayout::insertItem(AbstractDockItem *item, int index)
|
||||
connect(item, &AbstractDockItem::dragExited, this, &DockLayout::slotItemExited);
|
||||
connect(item, &AbstractDockItem::widthChanged, this, &DockLayout::relayout);
|
||||
connect(item, &AbstractDockItem::moveAnimationFinished,this, &DockLayout::slotAnimationFinish);
|
||||
connect(this, &DockLayout::itemHoverableChange, item, &AbstractDockItem::setHoverable);
|
||||
|
||||
m_ddam->Sort(itemsIdList());
|
||||
|
||||
@ -212,6 +213,7 @@ bool DockLayout::eventFilter(QObject *obj, QEvent *event)
|
||||
case QEvent::MouseMove:
|
||||
// case QEvent::Enter:
|
||||
// case QEvent::Leave:
|
||||
emit itemHoverableChange(true);
|
||||
if (m_dragItemMap.isEmpty())
|
||||
break;
|
||||
restoreTmpItem();
|
||||
|
@ -51,6 +51,7 @@ signals:
|
||||
void itemDropped();
|
||||
void contentsWidthChange();
|
||||
void frameUpdate();
|
||||
void itemHoverableChange(bool hoverable);
|
||||
|
||||
public slots:
|
||||
void removeSpacingItem();
|
||||
|
Loading…
x
Reference in New Issue
Block a user