mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
fix popup window position error when item is moved
Change-Id: Ie22736efbeffc8733a3db99671d298616bf92cff
This commit is contained in:
parent
8ee616a682
commit
2012f1b6bf
Notes:
Deepin Code Review
2018-02-05 11:13:10 +08:00
Verified+1: Anonymous Coward #1000004 Verified+1: wangyingtao <wangyingtao@deepin.com> Code-Review+2: 石博文 <sbw@sbw.so> Submitted-by: 石博文 <sbw@sbw.so> Submitted-at: Mon, 05 Feb 2018 11:13:10 +0800 Reviewed-on: https://cr.deepin.io/31426 Project: dde/dde-dock Branch: refs/heads/master
@ -58,13 +58,13 @@ DockItem::DockItem(QWidget *parent)
|
||||
m_popupTipsDelayTimer->setInterval(500);
|
||||
m_popupTipsDelayTimer->setSingleShot(true);
|
||||
|
||||
m_popupAdjustDelayTimer->setInterval(100);
|
||||
m_popupAdjustDelayTimer->setInterval(10);
|
||||
m_popupAdjustDelayTimer->setSingleShot(true);
|
||||
|
||||
setGraphicsEffect(m_hoverEffect);
|
||||
|
||||
connect(m_popupTipsDelayTimer, &QTimer::timeout, this, &DockItem::showHoverTips);
|
||||
connect(m_popupAdjustDelayTimer, &QTimer::timeout, this, &DockItem::updatePopupPosition);
|
||||
connect(m_popupAdjustDelayTimer, &QTimer::timeout, this, &DockItem::updatePopupPosition, Qt::QueuedConnection);
|
||||
}
|
||||
|
||||
DockItem::~DockItem()
|
||||
@ -83,6 +83,23 @@ void DockItem::setDockDisplayMode(const DisplayMode mode)
|
||||
DockDisplayMode = mode;
|
||||
}
|
||||
|
||||
bool DockItem::event(QEvent *event)
|
||||
{
|
||||
if (m_popupShown)
|
||||
{
|
||||
switch (event->type())
|
||||
{
|
||||
case QEvent::Paint:
|
||||
if (!m_popupAdjustDelayTimer->isActive())
|
||||
m_popupAdjustDelayTimer->start();
|
||||
break;
|
||||
default:;
|
||||
}
|
||||
}
|
||||
|
||||
return QWidget::event(event);
|
||||
}
|
||||
|
||||
void DockItem::updatePopupPosition()
|
||||
{
|
||||
Q_ASSERT(sender() == m_popupAdjustDelayTimer);
|
||||
@ -99,13 +116,6 @@ void DockItem::paintEvent(QPaintEvent *e)
|
||||
QWidget::paintEvent(e);
|
||||
}
|
||||
|
||||
void DockItem::moveEvent(QMoveEvent *e)
|
||||
{
|
||||
QWidget::moveEvent(e);
|
||||
|
||||
m_popupAdjustDelayTimer->start();
|
||||
}
|
||||
|
||||
void DockItem::mousePressEvent(QMouseEvent *e)
|
||||
{
|
||||
m_popupTipsDelayTimer->stop();
|
||||
|
@ -67,8 +67,8 @@ signals:
|
||||
void requestRefershWindowVisible() const;
|
||||
|
||||
protected:
|
||||
bool event(QEvent *event);
|
||||
void paintEvent(QPaintEvent *e);
|
||||
void moveEvent(QMoveEvent *e);
|
||||
void mousePressEvent(QMouseEvent *e);
|
||||
void enterEvent(QEvent *e);
|
||||
void leaveEvent(QEvent *e);
|
||||
|
Loading…
x
Reference in New Issue
Block a user