From 9291cef3014872b63fd3129c668fd38c3c46d4a5 Mon Sep 17 00:00:00 2001 From: wjyrich Date: Fri, 25 Jul 2025 11:24:08 +0800 Subject: [PATCH] fix: prevent duplicate dock requests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Added check for existing docked applications in requestDockByDesktopId 2. Return false if application is already docked to avoid duplicate entries 3. Improves user experience by preventing redundant dock requests 4. Maintains cleaner taskbar state by avoiding duplicate icons fix: 防止重复的dock请求 1. 在requestDockByDesktopId中添加对已dock应用的检查 2. 如果应用已经dock则返回false避免重复条目 3. 通过防止冗余的dock请求提升用户体验 4. 避免重复图标保持任务栏状态更整洁 Pms: BUG-315721 --- panels/dock/taskmanager/taskmanager.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/panels/dock/taskmanager/taskmanager.cpp b/panels/dock/taskmanager/taskmanager.cpp index bdd307584..496eb3801 100644 --- a/panels/dock/taskmanager/taskmanager.cpp +++ b/panels/dock/taskmanager/taskmanager.cpp @@ -344,7 +344,12 @@ QString TaskManager::desktopIdToAppId(const QString& desktopId) bool TaskManager::requestDockByDesktopId(const QString& desktopID) { if (desktopID.startsWith("internal/")) return false; - return RequestDock(desktopIdToAppId(desktopID)); + QString appId = desktopIdToAppId(desktopID); + // 检查应用是否已经在任务栏中,如果是则返回 false + if (IsDocked(appId)) + return false; + + return RequestDock(appId); } bool TaskManager::requestUndockByDesktopId(const QString& desktopID)