Skip to content

Commit aa4cb3b

Browse files
committed
fix(dock): align multitask view to first app gap with app icon spacing
Add leftPadding to TaskManager to compensate for the multitask view's implicit width being wider than its icon, ensuring the visual gap matches appTitleSpacing. 为TaskManager添加leftPadding属性,补偿多任务视图的宽度大于其图标 本身所产生的视觉偏移,使多任务视图与首个驻留应用的间距与应用图标 间距保持一致。 Log: 修复任务栏多任务视图与首个应用图标间距不一致的问题 PMS: BUG-364263 Influence: 多任务视图按钮与首个驻留应用图标的间距现在与应用图标之间的间距一致,视觉上更加统一。
1 parent 273db49 commit aa4cb3b

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

panels/dock/taskmanager/package/TaskManager.qml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,23 @@ ContainmentItem {
1616
property int dockOrder: 16
1717
property real remainingSpacesForTaskManager: Panel.rootObject.dockRemainingSpaceForCenter
1818
readonly property int appTitleSpacing: Math.max(10, Math.round(Panel.rootObject.dockItemMaxSize * 9 / 14) / 3)
19+
// Start padding for the app container so that the visual gap
20+
// (multitask icon right edge → first app icon left edge) = appTitleSpacing.
21+
// Compensates for the multitask view's box being wider than its icon.
22+
readonly property real multitaskViewIconRatio: 0.8
23+
readonly property real iconWidthToMaxSizeRatio: 9 / 14
24+
readonly property real startPadding: Math.max(0, appTitleSpacing - (Panel.rootObject.dockItemMaxSize * (multitaskViewIconRatio - iconWidthToMaxSizeRatio) / 2))
1925

2026
implicitWidth: {
21-
let maxW = Panel.itemAlignment === Dock.LeftAlignment ? Math.max(remainingSpacesForTaskManager, appContainer.implicitWidth) : Math.min(remainingSpacesForTaskManager, appContainer.implicitWidth)
27+
let extra = useColumnLayout ? 0 : startPadding
28+
let w = appContainer.implicitWidth + extra
29+
let maxW = Panel.itemAlignment === Dock.LeftAlignment ? Math.max(remainingSpacesForTaskManager, w) : Math.min(remainingSpacesForTaskManager, w)
2230
return useColumnLayout ? Panel.rootObject.dockSize : maxW
2331
}
2432
implicitHeight: {
25-
let maxH = Panel.itemAlignment === Dock.LeftAlignment ? Math.max(remainingSpacesForTaskManager, appContainer.implicitHeight) : Math.min(remainingSpacesForTaskManager, appContainer.implicitHeight)
33+
let extra = useColumnLayout ? startPadding : 0
34+
let h = appContainer.implicitHeight + extra
35+
let maxH = Panel.itemAlignment === Dock.LeftAlignment ? Math.max(remainingSpacesForTaskManager, h) : Math.min(remainingSpacesForTaskManager, h)
2636
return useColumnLayout ? maxH : Panel.rootObject.dockSize
2737
}
2838
// Helper function to find the current index of an app by its appId in the visualModel
@@ -72,6 +82,8 @@ ContainmentItem {
7282
OverflowContainer {
7383
id: appContainer
7484
anchors.fill: parent
85+
anchors.leftMargin: useColumnLayout ? 0 : taskmanager.startPadding
86+
anchors.topMargin: useColumnLayout ? taskmanager.startPadding : 0
7587
useColumnLayout: taskmanager.useColumnLayout
7688
spacing: taskmanager.appTitleSpacing
7789
remove: Transition {

0 commit comments

Comments
 (0)