From 91f723a0191bf8de9f8c8bfb1ad8c1c0a51c8346 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Wed, 4 Nov 2026 22:39:54 +0800 Subject: [PATCH] =?UTF-8?q?docs(app-iced):=20M116=20r4=20=E2=80=94?= =?UTF-8?q?=E2=80=94=20=E6=97=A5=E5=BF=97/=E6=A8=A1=E6=9D=BF=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B=E6=94=B9=E7=94=A8=E7=9C=9F=E8=BF=9B=E7=A8=8B=E5=AE=9E?= =?UTF-8?q?=E6=B5=8B=E5=80=BC=EF=BC=88frame=3Doverlapped=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 真进程两跑(`--software-renderer`,同一个 bin,只改整窗 α)拿到: α=1.0 → … frame=overlapped layered=off α<1 → … frame=overlapped layered=on suppressed_by=window_alpha 所以把两处仍拿 `frame=popup` 当示例的文档改成实测值: - `pages/appearance/mod.rs` 的取证模板:`frame=overlapped layered=on … suppressed_by=window_alpha`, 并注明真进程两条在 `DevDocs/artifacts/m116/README.md`、`frame=` 恒为 `overlapped`/`other`。 - `transparency/dwm.rs` 的 `style_summary` 示例:同上,并点明 `popup` 只属于带 owner 的弹出窗。 注释级改动,行为与断言零改动。 --- crates/app-iced/src/pages/appearance/mod.rs | 4 +++- crates/app-iced/src/platform/win32/transparency/dwm.rs | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/crates/app-iced/src/pages/appearance/mod.rs b/crates/app-iced/src/pages/appearance/mod.rs index 0492f47..1d06014 100644 --- a/crates/app-iced/src/pages/appearance/mod.rs +++ b/crates/app-iced/src/pages/appearance/mod.rs @@ -41,7 +41,9 @@ //! 每一处改动都打一行 [`state::State::log_line`]:`[appearance] window_alpha=… panel_alpha=… //! byte=… corner=…`;圆角另有一条独立管线,行形如 //! `[corner] corner=policy=system source=dwm os=10.0.26100 excluded_reason=none -//! radius=system pref=2 readback=? read_hr=0x80070057 frame=popup layered=on` +//! radius=system pref=2 readback=? read_hr=0x80070057 frame=overlapped layered=on +//! suppressed_by=window_alpha`(真进程实跑的两条见 `DevDocs/artifacts/m116/README.md`; +//! `frame=` 恒为 `overlapped`/`other`,**不会是 `popup`**) //! (见 `app::update::appearance` 与 `platform::win32::corner::format_line`)。数值是**下发前**的 //! 字节/属性值(不是观感),因为在 RDP + 虚拟显示适配器上「看上去多透明 / 圆不圆」不可信。 //! 截图矩阵用 `ULL_APPEARANCE_*` 环境变量灌值(见 [`state`] 的常量)。 diff --git a/crates/app-iced/src/platform/win32/transparency/dwm.rs b/crates/app-iced/src/platform/win32/transparency/dwm.rs index 7b85d3d..3990bae 100644 --- a/crates/app-iced/src/platform/win32/transparency/dwm.rs +++ b/crates/app-iced/src/platform/win32/transparency/dwm.rs @@ -268,7 +268,8 @@ pub const fn layered_label(ex_style: isize) -> &'static str { } } -/// 一个窗口的样式摘要(`frame=popup layered=on`);读不到时如实写 `frame=? layered=?`。 +/// 一个窗口的样式摘要(`frame=overlapped layered=off`,产品真进程实测值);读不到时如实写 +/// `frame=? layered=?`。「`frame=popup`」只会出现在**带 owner 的弹出窗**上,产品不会。 #[must_use] pub fn style_summary(hwnd: isize) -> String { let frame = window_style(hwnd).map_or("?", frame_label);