mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-03 00:15:21 +00:00
fix: preview window can not be raised after clicked preview snapshot
https://github.com/linuxdeepin/internal-discussion/issues/1321
This commit is contained in:
parent
9293c45df5
commit
f4d6ba1076
@ -582,21 +582,17 @@ void AppItem::showPreview()
|
||||
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestActivateWindow, this, &AppItem::requestActivateWindow, Qt::QueuedConnection);
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestPreviewWindow, this, &AppItem::requestPreviewWindow, Qt::QueuedConnection);
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestCancelAndHidePreview, this, &AppItem::cancelAndHidePreview);
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestCancelPreviewWindow, this, &AppItem::requestCancelPreview);
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestHidePopup, this, &AppItem::hidePopup);
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestCheckWindows, m_itemEntryInter, &DockEntryInter::Check);
|
||||
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestActivateWindow, [=]() { m_appPreviewTips = nullptr; });
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestCancelAndHidePreview, [=]() { m_appPreviewTips = nullptr; });
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestCancelPreviewWindow, [=]() { m_appPreviewTips = nullptr; });
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestHidePopup, [=]() { m_appPreviewTips = nullptr; });
|
||||
|
||||
showPopupWindow(m_appPreviewTips, true);
|
||||
}
|
||||
|
||||
void AppItem::cancelAndHidePreview()
|
||||
{
|
||||
hidePopup();
|
||||
emit requestCancelPreview();
|
||||
}
|
||||
|
||||
void AppItem::playSwingEffect()
|
||||
{
|
||||
// NOTE(sbw): return if animation view already playing
|
||||
|
@ -93,7 +93,6 @@ private slots:
|
||||
void refershIcon() Q_DECL_OVERRIDE;
|
||||
void activeChanged();
|
||||
void showPreview();
|
||||
void cancelAndHidePreview();
|
||||
void playSwingEffect();
|
||||
void stopSwingEffect();
|
||||
void checkAttentionEffect();
|
||||
|
@ -80,7 +80,8 @@ void PreviewContainer::setWindowInfos(const WindowInfoMap &infos, const WindowLi
|
||||
}
|
||||
|
||||
if (m_snapshots.isEmpty())
|
||||
emit requestCancelAndHidePreview();
|
||||
emit requestCancelPreviewWindow();
|
||||
emit requestHidePopup();
|
||||
|
||||
adjustSize();
|
||||
}
|
||||
@ -108,14 +109,14 @@ void PreviewContainer::checkMouseLeave()
|
||||
if (hover)
|
||||
return;
|
||||
|
||||
emit requestCancelAndHidePreview();
|
||||
|
||||
m_floatingPreview->setVisible(false);
|
||||
|
||||
if (m_needActivate)
|
||||
{
|
||||
if (m_needActivate) {
|
||||
m_needActivate = false;
|
||||
emit requestActivateWindow(m_floatingPreview->trackedWid());
|
||||
} else {
|
||||
emit requestCancelPreviewWindow();
|
||||
emit requestHidePopup();
|
||||
}
|
||||
}
|
||||
|
||||
@ -159,8 +160,7 @@ void PreviewContainer::appendSnapWidget(const WId wid)
|
||||
{
|
||||
AppSnapshot *snap = new AppSnapshot(wid);
|
||||
|
||||
connect(snap, &AppSnapshot::clicked, this, &PreviewContainer::requestActivateWindow, Qt::QueuedConnection);
|
||||
connect(snap, &AppSnapshot::clicked, this, &PreviewContainer::requestCancelAndHidePreview, Qt::QueuedConnection);
|
||||
connect(snap, &AppSnapshot::clicked, this, &PreviewContainer::onSnapshotClicked, Qt::QueuedConnection);
|
||||
connect(snap, &AppSnapshot::entered, this, &PreviewContainer::previewEntered, Qt::QueuedConnection);
|
||||
connect(snap, &AppSnapshot::requestCheckWindow, this, &PreviewContainer::requestCheckWindows);
|
||||
|
||||
@ -185,7 +185,6 @@ void PreviewContainer::leaveEvent(QEvent *e)
|
||||
{
|
||||
QWidget::leaveEvent(e);
|
||||
|
||||
m_floatingPreview->setVisible(false);
|
||||
m_mouseLeaveTimer->start();
|
||||
}
|
||||
|
||||
@ -208,6 +207,15 @@ void PreviewContainer::dragLeaveEvent(QDragLeaveEvent *e)
|
||||
m_mouseLeaveTimer->start(10);
|
||||
}
|
||||
|
||||
void PreviewContainer::onSnapshotClicked(const WId wid)
|
||||
{
|
||||
Q_UNUSED(wid);
|
||||
|
||||
m_needActivate = true;
|
||||
// the leaveEvent of this widget will be called after this signal
|
||||
Q_EMIT requestHidePopup();
|
||||
}
|
||||
|
||||
void PreviewContainer::previewEntered(const WId wid)
|
||||
{
|
||||
if (!m_wmHelper->hasComposite())
|
||||
|
@ -47,7 +47,8 @@ signals:
|
||||
void requestActivateWindow(const WId wid) const;
|
||||
void requestPreviewWindow(const WId wid) const;
|
||||
void requestCheckWindows() const;
|
||||
void requestCancelAndHidePreview() const;
|
||||
void requestCancelPreviewWindow() const;
|
||||
void requestHidePopup() const;
|
||||
|
||||
public:
|
||||
void setWindowInfos(const WindowInfoMap &infos, const WindowList &allowClose);
|
||||
@ -68,6 +69,7 @@ private:
|
||||
void dragLeaveEvent(QDragLeaveEvent *e);
|
||||
|
||||
private slots:
|
||||
void onSnapshotClicked(const WId wid);
|
||||
void previewEntered(const WId wid);
|
||||
void moveFloatingPreview(const QPoint &p);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user