From 241e668ea2ada11e9607303cd24b3af4dbfa0891 Mon Sep 17 00:00:00 2001 From: chenhongtao Date: Tue, 30 Jan 2024 13:41:51 +0800 Subject: [PATCH] fix: dock animation broken Issue: https://github.com/linuxdeepin/developer-center/issues/7143 Log: --- frame/util/multiscreenworker.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frame/util/multiscreenworker.cpp b/frame/util/multiscreenworker.cpp index a237c8b50..4ea67e850 100644 --- a/frame/util/multiscreenworker.cpp +++ b/frame/util/multiscreenworker.cpp @@ -191,7 +191,6 @@ void MultiScreenWorker::onPositionChanged(int position) qDebug() << "position change from: " << lastPos << " to: " << position; #endif m_position = static_cast(position); - Q_EMIT positionChanged(m_position); if (m_hideMode == HideMode::KeepHidden || (m_hideMode == HideMode::SmartHide && m_hideState == HideState::Hide)) { // 这种情况切换位置,任务栏不需要显示 @@ -203,10 +202,11 @@ void MultiScreenWorker::onPositionChanged(int position) // 更新当前屏幕信息,下次显示从目标屏幕显示 DOCK_SCREEN->updateDockedScreen(getValidScreen(m_position)); // 需要更新frontendWindowRect接口数据,否则会造成HideState属性值不变 - emit requestUpdateFrontendGeometry(); + Q_EMIT requestUpdateFrontendGeometry(); + Q_EMIT positionChanged(m_position); } else { // 一直显示的模式才需要显示 - emit requestUpdatePosition(lastPos, m_position); + Q_EMIT requestUpdatePosition(lastPos, m_position); } }