mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +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::requestActivateWindow, this, &AppItem::requestActivateWindow, Qt::QueuedConnection);
|
||||||
connect(m_appPreviewTips, &PreviewContainer::requestPreviewWindow, this, &AppItem::requestPreviewWindow, 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::requestCheckWindows, m_itemEntryInter, &DockEntryInter::Check);
|
||||||
|
|
||||||
connect(m_appPreviewTips, &PreviewContainer::requestActivateWindow, [=]() { m_appPreviewTips = nullptr; });
|
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);
|
showPopupWindow(m_appPreviewTips, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AppItem::cancelAndHidePreview()
|
|
||||||
{
|
|
||||||
hidePopup();
|
|
||||||
emit requestCancelPreview();
|
|
||||||
}
|
|
||||||
|
|
||||||
void AppItem::playSwingEffect()
|
void AppItem::playSwingEffect()
|
||||||
{
|
{
|
||||||
// NOTE(sbw): return if animation view already playing
|
// NOTE(sbw): return if animation view already playing
|
||||||
|
@ -93,7 +93,6 @@ private slots:
|
|||||||
void refershIcon() Q_DECL_OVERRIDE;
|
void refershIcon() Q_DECL_OVERRIDE;
|
||||||
void activeChanged();
|
void activeChanged();
|
||||||
void showPreview();
|
void showPreview();
|
||||||
void cancelAndHidePreview();
|
|
||||||
void playSwingEffect();
|
void playSwingEffect();
|
||||||
void stopSwingEffect();
|
void stopSwingEffect();
|
||||||
void checkAttentionEffect();
|
void checkAttentionEffect();
|
||||||
|
@ -80,7 +80,8 @@ void PreviewContainer::setWindowInfos(const WindowInfoMap &infos, const WindowLi
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (m_snapshots.isEmpty())
|
if (m_snapshots.isEmpty())
|
||||||
emit requestCancelAndHidePreview();
|
emit requestCancelPreviewWindow();
|
||||||
|
emit requestHidePopup();
|
||||||
|
|
||||||
adjustSize();
|
adjustSize();
|
||||||
}
|
}
|
||||||
@ -108,14 +109,14 @@ void PreviewContainer::checkMouseLeave()
|
|||||||
if (hover)
|
if (hover)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
emit requestCancelAndHidePreview();
|
|
||||||
|
|
||||||
m_floatingPreview->setVisible(false);
|
m_floatingPreview->setVisible(false);
|
||||||
|
|
||||||
if (m_needActivate)
|
if (m_needActivate) {
|
||||||
{
|
|
||||||
m_needActivate = false;
|
m_needActivate = false;
|
||||||
emit requestActivateWindow(m_floatingPreview->trackedWid());
|
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);
|
AppSnapshot *snap = new AppSnapshot(wid);
|
||||||
|
|
||||||
connect(snap, &AppSnapshot::clicked, this, &PreviewContainer::requestActivateWindow, Qt::QueuedConnection);
|
connect(snap, &AppSnapshot::clicked, this, &PreviewContainer::onSnapshotClicked, Qt::QueuedConnection);
|
||||||
connect(snap, &AppSnapshot::clicked, this, &PreviewContainer::requestCancelAndHidePreview, Qt::QueuedConnection);
|
|
||||||
connect(snap, &AppSnapshot::entered, this, &PreviewContainer::previewEntered, Qt::QueuedConnection);
|
connect(snap, &AppSnapshot::entered, this, &PreviewContainer::previewEntered, Qt::QueuedConnection);
|
||||||
connect(snap, &AppSnapshot::requestCheckWindow, this, &PreviewContainer::requestCheckWindows);
|
connect(snap, &AppSnapshot::requestCheckWindow, this, &PreviewContainer::requestCheckWindows);
|
||||||
|
|
||||||
@ -185,7 +185,6 @@ void PreviewContainer::leaveEvent(QEvent *e)
|
|||||||
{
|
{
|
||||||
QWidget::leaveEvent(e);
|
QWidget::leaveEvent(e);
|
||||||
|
|
||||||
m_floatingPreview->setVisible(false);
|
|
||||||
m_mouseLeaveTimer->start();
|
m_mouseLeaveTimer->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,6 +207,15 @@ void PreviewContainer::dragLeaveEvent(QDragLeaveEvent *e)
|
|||||||
m_mouseLeaveTimer->start(10);
|
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)
|
void PreviewContainer::previewEntered(const WId wid)
|
||||||
{
|
{
|
||||||
if (!m_wmHelper->hasComposite())
|
if (!m_wmHelper->hasComposite())
|
||||||
|
@ -47,7 +47,8 @@ signals:
|
|||||||
void requestActivateWindow(const WId wid) const;
|
void requestActivateWindow(const WId wid) const;
|
||||||
void requestPreviewWindow(const WId wid) const;
|
void requestPreviewWindow(const WId wid) const;
|
||||||
void requestCheckWindows() const;
|
void requestCheckWindows() const;
|
||||||
void requestCancelAndHidePreview() const;
|
void requestCancelPreviewWindow() const;
|
||||||
|
void requestHidePopup() const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void setWindowInfos(const WindowInfoMap &infos, const WindowList &allowClose);
|
void setWindowInfos(const WindowInfoMap &infos, const WindowList &allowClose);
|
||||||
@ -68,6 +69,7 @@ private:
|
|||||||
void dragLeaveEvent(QDragLeaveEvent *e);
|
void dragLeaveEvent(QDragLeaveEvent *e);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
void onSnapshotClicked(const WId wid);
|
||||||
void previewEntered(const WId wid);
|
void previewEntered(const WId wid);
|
||||||
void moveFloatingPreview(const QPoint &p);
|
void moveFloatingPreview(const QPoint &p);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user