diff --git a/frame/window/mainwindowbase.cpp b/frame/window/mainwindowbase.cpp index 4a93619ff..ea8d83b86 100644 --- a/frame/window/mainwindowbase.cpp +++ b/frame/window/mainwindowbase.cpp @@ -388,7 +388,7 @@ QRect MainWindowBase::getDockGeometry(QScreen *screen, const Dock::Position &pos const int margin = static_cast((displaymode == DisplayMode::Fashion ? 10 : 0) * (withoutScale ? qApp->devicePixelRatio() : 1)); int dockSize = 0; if (hideState == Dock::HideState::Show) - dockSize = windowSize(); + dockSize = windowSize() * (withoutScale ? qApp->devicePixelRatio() : 1); // 拿到当前显示器缩放之前的分辨率 QRect screenRect = screen->handle()->geometry(); diff --git a/frame/window/windowmanager.cpp b/frame/window/windowmanager.cpp index da00261ee..58649f53b 100644 --- a/frame/window/windowmanager.cpp +++ b/frame/window/windowmanager.cpp @@ -601,7 +601,7 @@ void WindowManager::onChangeDockPosition(QString fromScreen, QString toScreen, c void WindowManager::onRequestUpdateFrontendGeometry() { - QRect rect = getDockGeometry(false); + QRect rect = getDockGeometry(true); // 向com.deepin.dde.daemon.Dock的SetFrontendWindowRect接口设置区域时,此区域的高度或宽度不能为0,否则会导致其HideState属性循环切换,造成任务栏循环显示或隐藏 if (rect.width() == 0 || rect.height() == 0) return;