diff --git a/frame/item/appitem.cpp b/frame/item/appitem.cpp index 1606743b7..9a9a2ec9d 100644 --- a/frame/item/appitem.cpp +++ b/frame/item/appitem.cpp @@ -110,8 +110,7 @@ AppItem::AppItem(const QDBusObjectPath &entry, QWidget *parent) connect(m_appPreviewTips, &PreviewContainer::requestActivateWindow, this, &AppItem::requestActivateWindow, Qt::QueuedConnection); connect(m_appPreviewTips, &PreviewContainer::requestPreviewWindow, this, &AppItem::requestPreviewWindow, Qt::QueuedConnection); - connect(m_appPreviewTips, &PreviewContainer::requestCancelPreview, this, &AppItem::requestCancelPreview, Qt::QueuedConnection); - connect(m_appPreviewTips, &PreviewContainer::requestHidePreview, this, &AppItem::hidePopup, Qt::QueuedConnection); + connect(m_appPreviewTips, &PreviewContainer::requestCancelAndHidePreview, this, &AppItem::cancelAndHidePreview); connect(m_appPreviewTips, &PreviewContainer::requestCheckWindows, m_itemEntry, &DBusDockEntry::Check); updateTitle(); @@ -562,3 +561,9 @@ void AppItem::showPreview() showPopupWindow(m_appPreviewTips, true); } +void AppItem::cancelAndHidePreview() +{ + hidePopup(); + emit requestCancelPreview(); +} + diff --git a/frame/item/appitem.h b/frame/item/appitem.h index c286efe6a..a1de77c7e 100644 --- a/frame/item/appitem.h +++ b/frame/item/appitem.h @@ -77,6 +77,7 @@ private slots: void refershIcon(); void activeChanged(); void showPreview(); + void cancelAndHidePreview(); private: QLabel *m_appNameTips; diff --git a/frame/item/components/previewcontainer.cpp b/frame/item/components/previewcontainer.cpp index 24b43425e..204227bd5 100644 --- a/frame/item/components/previewcontainer.cpp +++ b/frame/item/components/previewcontainer.cpp @@ -78,12 +78,8 @@ void PreviewContainer::setWindowInfos(const WindowDict &infos) } if (m_snapshots.isEmpty()) - { - emit requestCancelPreview(); - emit requestHidePreview(); - } else { + emit requestCancelAndHidePreview(); adjustSize(); - } } void PreviewContainer::updateSnapshots() @@ -108,14 +104,13 @@ void PreviewContainer::checkMouseLeave() if (!hover) { + emit requestCancelAndHidePreview(); + m_floatingPreview->setVisible(false); if (!isVisible()) return; - emit requestCancelPreview(); - emit requestHidePreview(); - if (m_needActivate) { m_needActivate = false; @@ -165,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::requestCancelPreview, Qt::QueuedConnection); - connect(snap, &AppSnapshot::clicked, this, &PreviewContainer::requestHidePreview, Qt::QueuedConnection); + connect(snap, &AppSnapshot::clicked, this, &PreviewContainer::requestCancelAndHidePreview, Qt::QueuedConnection); connect(snap, &AppSnapshot::entered, this, &PreviewContainer::previewEntered, Qt::QueuedConnection); connect(snap, &AppSnapshot::requestCheckWindow, this, &PreviewContainer::requestCheckWindows); diff --git a/frame/item/components/previewcontainer.h b/frame/item/components/previewcontainer.h index 3a5f3f313..39e97c861 100644 --- a/frame/item/components/previewcontainer.h +++ b/frame/item/components/previewcontainer.h @@ -48,9 +48,8 @@ public: signals: void requestActivateWindow(const WId wid) const; void requestPreviewWindow(const WId wid) const; - void requestCancelPreview() const; - void requestHidePreview() const; void requestCheckWindows() const; + void requestCancelAndHidePreview() const; public: void setWindowInfos(const WindowDict &infos); diff --git a/frame/util/docksettings.h b/frame/util/docksettings.h index e19a6eb99..86236ccbd 100644 --- a/frame/util/docksettings.h +++ b/frame/util/docksettings.h @@ -65,8 +65,8 @@ public: Position position() const; int screenHeight() const; int screenWidth() const; - const int screenRawHeight() const { return m_displayInter->screenRawHeight(); } - const int screenRawWidth() const { return m_displayInter->screenRawWidth(); } + int screenRawHeight() const { return m_displayInter->screenRawHeight(); } + int screenRawWidth() const { return m_displayInter->screenRawWidth(); } int expandTimeout() const; int narrowTimeout() const;