From 27a626fd963ad09cd35bd52b06f70cc8b46cb456 Mon Sep 17 00:00:00 2001 From: Wu JiangYu Date: Wed, 2 Sep 2026 16:18:42 +0800 Subject: [PATCH] docs: fix launcheritem dock size calculation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. The dock exclusion zone calculation incorrectly included full dock thickness 2. Changed to use actual reserved layer-shell zone when TreeLand is active 3. Added dockReservedZone property to read layer shell exclusion zone 4. Dock spacing remains constant while thickness contribution is bounded by reserved zone Log: Fixed dock reserved space calculation for launcher panel Influence: 1. Test launcher popup on dock positions (top, bottom, left, right) 2. Verify TreeLand system tray overlay behavior 3. Confirm minimized window icon alignment unaffected 4. Test other desktop environments without layer-shell support 5. Check dock icon scaling with ultra-wide displays docs: 修复启动器面板 dock 尺寸计算问题 1. 修复了 dock 排除区域计算中错误包含完整 dock 厚度的问题 2. 在 TreeLand 启用时,改用实际预留的 layer-shell 区域 3. 新增 dockReservedZone 属性,用于读取 layer shell 的排除区域 4. Dock 间距保持恒定,而厚度贡献受预留区域约束 Log: 修复启动器面板的 dock 预留空间计算 Influence: 1. 测试启动器弹窗在 dock 不同位置(上、下、左、右)的显示效果 2. 验证 TreeLand 系统托盘叠加层行为 3. 确认最小化窗口图标对齐不受影响 4. 测试其他不支持 layer-shell 的桌面环境 5. 检查超宽屏显示器下 dock 图标缩放效果 PMS: TASK-395113 --- shell-launcher-applet/package/launcheritem.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/shell-launcher-applet/package/launcheritem.qml b/shell-launcher-applet/package/launcheritem.qml index e89d7b43..a263cd65 100644 --- a/shell-launcher-applet/package/launcheritem.qml +++ b/shell-launcher-applet/package/launcheritem.qml @@ -290,7 +290,10 @@ AppletItem { readonly property bool isDarkTheme: D.DTK.themeType === D.ApplicationHelper.DarkType readonly property int dockThickness: dockIsHorizontal ? Panel.rootObject.height : Panel.rootObject.width - readonly property int dockExclusion: dockThickness + DesktopIntegration.dockSpacing + readonly property int dockReservedZone: DesktopIntegration.isTreeLand() ? Panel.rootObject.DLayerShellWindow.exclusionZone : 0 + + readonly property int dockExclusion: DesktopIntegration.dockSpacing + + Math.max(0, dockThickness - dockReservedZone) readonly property int iconAlignOffset: Math.max(dockIsHorizontal ? itemPos.x : itemPos.y, DesktopIntegration.dockSpacing)