mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-03 00:15:21 +00:00
feat: prevent unexpected trigger
Change-Id: Ie60299680e8442598fbf9c9fa67c73cbd1cf3d61
This commit is contained in:
parent
598978d350
commit
7ea3341aca
Notes:
gerrit
2018-11-08 16:23:45 +08:00
Verified+1: <jenkins@deepin.com> Code-Review+2: 流年匆忙 <justforlxz@gmail.com> Submitted-by: 流年匆忙 <justforlxz@gmail.com> Submitted-at: Thu, 08 Nov 2018 16:23:44 +0800 Reviewed-on: https://cr.deepin.io/39550 Project: dde/dde-dock Branch: refs/heads/master
@ -32,6 +32,7 @@
|
||||
#include <QPainter>
|
||||
#include <QVBoxLayout>
|
||||
#include <QSizeF>
|
||||
#include <QTimer>
|
||||
|
||||
struct SHMInfo
|
||||
{
|
||||
@ -51,14 +52,12 @@ struct SHMInfo
|
||||
};
|
||||
|
||||
AppSnapshot::AppSnapshot(const WId wid, QWidget *parent)
|
||||
: QWidget(parent),
|
||||
|
||||
m_wid(wid),
|
||||
|
||||
m_title(new TipsWidget),
|
||||
m_closeBtn(new DImageButton),
|
||||
|
||||
m_wmHelper(DWindowManagerHelper::instance())
|
||||
: QWidget(parent)
|
||||
, m_wid(wid)
|
||||
, m_title(new TipsWidget)
|
||||
, m_closeBtn(new DImageButton)
|
||||
, m_waitLeaveTimer(new QTimer(this))
|
||||
, m_wmHelper(DWindowManagerHelper::instance())
|
||||
{
|
||||
m_closeBtn->setFixedSize(24, 24);
|
||||
m_closeBtn->setNormalPic(":/icons/resources/close_round_normal.svg");
|
||||
@ -67,6 +66,9 @@ AppSnapshot::AppSnapshot(const WId wid, QWidget *parent)
|
||||
m_closeBtn->setVisible(false);
|
||||
m_title->setObjectName("AppSnapshotTitle");
|
||||
|
||||
m_waitLeaveTimer->setInterval(200);
|
||||
m_waitLeaveTimer->setSingleShot(true);
|
||||
|
||||
QHBoxLayout *centralLayout = new QHBoxLayout;
|
||||
centralLayout->addWidget(m_title);
|
||||
centralLayout->addWidget(m_closeBtn);
|
||||
@ -79,7 +81,9 @@ AppSnapshot::AppSnapshot(const WId wid, QWidget *parent)
|
||||
|
||||
connect(m_closeBtn, &DImageButton::clicked, this, &AppSnapshot::closeWindow, Qt::QueuedConnection);
|
||||
connect(m_wmHelper, &DWindowManagerHelper::hasCompositeChanged, this, &AppSnapshot::compositeChanged, Qt::QueuedConnection);
|
||||
|
||||
connect(m_waitLeaveTimer, &QTimer::timeout, this, [=] {
|
||||
emit entered(wid);
|
||||
});
|
||||
QTimer::singleShot(1, this, &AppSnapshot::compositeChanged);
|
||||
}
|
||||
|
||||
@ -198,10 +202,12 @@ void AppSnapshot::enterEvent(QEvent *e)
|
||||
{
|
||||
QWidget::enterEvent(e);
|
||||
|
||||
if (!m_wmHelper->hasComposite())
|
||||
if (!m_wmHelper->hasComposite()) {
|
||||
m_closeBtn->setVisible(true);
|
||||
else
|
||||
emit entered(m_wid);
|
||||
}
|
||||
else {
|
||||
m_waitLeaveTimer->start();
|
||||
}
|
||||
|
||||
update();
|
||||
}
|
||||
@ -211,6 +217,7 @@ void AppSnapshot::leaveEvent(QEvent *e)
|
||||
QWidget::leaveEvent(e);
|
||||
|
||||
m_closeBtn->setVisible(false);
|
||||
m_waitLeaveTimer->stop();
|
||||
|
||||
update();
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ private:
|
||||
QRectF m_snapshotSrcRect;
|
||||
|
||||
TipsWidget *m_title;
|
||||
|
||||
QTimer *m_waitLeaveTimer;
|
||||
DImageButton *m_closeBtn;
|
||||
DWindowManagerHelper *m_wmHelper;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user