[Feedback on issues] 启动器卸载确认对话框按钮显示不全
Tofloor
poster avatar
金城
deepin
9 hours ago
Author

Deepin 25 修复:启动器卸载确认对话框按钮显示不全

现象

在启动器上右键应用 → 卸载,弹出的确认对话框底部只能看到"确认""取消"按钮的上边缘,按钮文字被裁切消失。

3ea5bcd4-2e89-4f2b-b0db-919ff9c28f55.png

实测环境

项目
系统 Deepin 25 (crimson)
dde-launchpad 2.0.37
dde-application-manager 1.2.54
dde-shell 2.0.42
分辨率 2560×1600
缩放 1.0

影响版本

在我的环境(Deepin 25 + dde-launchpad 2.0.37)上 100% 复现。查看上游源码,launcheritem.qml 中这段问题代码从 2.0.37 到当前最新 HEAD(2.0.40)没有变动,推测 2.0.38~2.0.40 同样存在此问题,但未实际测试。

另外,这个问题是否触发取决于应用名长度——短名字不折行时按钮可能刚好完整显示,名字较长导致提示文字折行后才触发裁切。我测试时所有已安装应用均触发。

原因

/usr/share/dde-shell/org.deepin.ds.dock.launcherapplet/launcheritem.qml 第 312 行:

minimumHeight: layout.implicitHeight + DStyle.Style.dialogWindow.titleBarHeight
maximumHeight: minimumHeight   // 问题在这里

implicitHeight 是 Qt 组件自己计算的"推荐高度",但提示文字("确定要卸载"XXX"吗?")折行后实际渲染高度会超出这个值。最大高度被锁死在最小高度,超出部分——底部按钮——被裁切。

修复方法

删除 maximumHeight: minimumHeight 一行。DialogWindow 内部已有 height: content.height 自适应内容高度,无需手动锁死。

手动修复(三行命令)

# 1. 备份
sudo cp /usr/share/dde-shell/org.deepin.ds.dock.launcherapplet/launcheritem.qml \
        /usr/share/dde-shell/org.deepin.ds.dock.launcherapplet/launcheritem.qml.bak

# 2. 删除第 312 行
sudo sed -i '312d' /usr/share/dde-shell/org.deepin.ds.dock.launcherapplet/launcheritem.qml

# 3. 重启 dde-shell(桌面闪一下,不影响运行中的应用)
systemctl --user restart dde-shell@DDE.service

恢复

sudo cp /usr/share/dde-shell/org.deepin.ds.dock.launcherapplet/launcheritem.qml.bak \
        /usr/share/dde-shell/org.deepin.ds.dock.launcherapplet/launcheritem.qml
systemctl --user restart dde-shell@DDE.service

注意

dde-launchpad 包更新后 QML 可能被覆盖,需重新修复。已向上游提交 PR:

https://gitee.com/deepin-community/dde-launchpad/pulls/1

Reply Favorite View the author
All Replies
avatar
pzm9012
Moderator
7 hours ago
#1

已知问题,后续版本会修复,感谢反馈

Reply View the author