From 15d0bbb9a2e78cf5bd80d8d687777ee8a5908468 Mon Sep 17 00:00:00 2001 From: hotime <41103047+hotime@users.noreply.github.com> Date: Thu, 13 Aug 2026 14:13:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20SNI=20=E6=87=92?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E6=89=98=E7=9B=98=E5=9B=BE=E6=A0=87=E5=8F=B3?= =?UTF-8?q?=E9=94=AE=E8=8F=9C=E5=8D=95=E6=97=A0=E6=B3=95=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 部分 SNI 应用(如 Snipaste)的 DBusMenu 菜单采用懒加载:只有收到 AboutToShow 调用后才填充菜单内容。此前右击托盘图标时从未触发 DBus AboutToShow,右键菜单始终无法显示内容。 修复:右击分支在显示菜单前主动调用 updateMenu(menu) 触发一次 DBus AboutToShow,拉取懒加载菜单内容。 本修复需配合 dde-shell 的对应修复(监听菜单 surface 尺寸变化并重新请求几何更新),使内容异步到达时弹窗能重新布局与绘制。 --- plugins/application-tray/sniprotocolhandler.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/application-tray/sniprotocolhandler.cpp b/plugins/application-tray/sniprotocolhandler.cpp index 79610539f..073adf476 100644 --- a/plugins/application-tray/sniprotocolhandler.cpp +++ b/plugins/application-tray/sniprotocolhandler.cpp @@ -346,6 +346,8 @@ bool SniTrayProtocolHandler::eventFilter(QObject *watched, QEvent *event) } auto menu = menuImporter()->menu(); + // SNI 懒加载应用(如 Snipaste)只有收到 AboutToShow 才填充菜单,因此主动调用 updateMenu() 触发一次 DBus AboutToShow + menuImporter()->updateMenu(menu); menu->setFixedSize(menu->sizeHint()); menu->winId();