diff --git a/frame/util/multiscreenworker.cpp b/frame/util/multiscreenworker.cpp index 6792427db..df51b8df8 100644 --- a/frame/util/multiscreenworker.cpp +++ b/frame/util/multiscreenworker.cpp @@ -1507,6 +1507,18 @@ QRect MultiScreenWorker::getDockShowMinGeometry(const QString &screenName, bool return rect; } +bool MultiScreenWorker::launcherVisible() +{ + return m_launcherInter->isValid() ? m_launcherInter->visible() : false; +} + +void MultiScreenWorker::setLauncherVisble(bool isVisible) +{ + if (m_launcherInter->isValid()) { + isVisible ? m_launcherInter->Show() : m_launcherInter->Hide(); + } +} + /** * @brief 获取任务栏显示时的参数。目前多屏情况下缩放保持一致,如果后续缩放规则修改,这里需要重新调整 * diff --git a/frame/util/multiscreenworker.h b/frame/util/multiscreenworker.h index 82d137bd9..520bfb37b 100644 --- a/frame/util/multiscreenworker.h +++ b/frame/util/multiscreenworker.h @@ -149,6 +149,9 @@ public: QRect dockRect(const QString &screenName); QRect getDockShowMinGeometry(const QString &screenName, bool withoutScale = false); + bool launcherVisible(); + void setLauncherVisble(bool isVisible); + signals: void opacityChanged(const quint8 value) const; void displayModeChanegd(); diff --git a/frame/window/mainwindow.cpp b/frame/window/mainwindow.cpp index 66a8e4e4b..5f8f9e507 100755 --- a/frame/window/mainwindow.cpp +++ b/frame/window/mainwindow.cpp @@ -220,6 +220,10 @@ void MainWindow::mousePressEvent(QMouseEvent *e) }); return; } + + if (Utils::IS_WAYLAND_DISPLAY && m_multiScreenWorker->launcherVisible()) { + m_multiScreenWorker->setLauncherVisble(false); + } } void MainWindow::keyPressEvent(QKeyEvent *e)