docs(app-iced): M116 r3 复审 —— 只对齐注释里的「只读下层键」数量与取证日志模板
复审 r3:p2 ×2,纯注释/文档漂移,**行为零改动、断言零改动**。 1. `app/appearance.rs:8,15-20,68` 与 `app/state.rs:170-171`:M116 之后 `AppearanceBase` 是**四个**字段(整窗 α / 标题栏三态 / 配色来源 / 窗口圆角), 走 `AppCommand::SetSetting` 的是**三个**键(标题栏三态还没有 UI 写者,D37 接线未落地)。 两处数字与列举按 grep 到的实际代码改(`AppearanceBase` 的 `pub` 字段数 = 4; `on_appearance` 的 match 守卫 = WindowOpacity / PaletteSource / Corner)。 2. `pages/appearance/mod.rs:41` 的取证件模板补 `corner=`:`[appearance]` 行确实有这一栏, 圆角还有一条独立管线 `[corner] <ctx> corner=policy=… source=… os=… excluded_reason=… radius=system pref=… readback=… read_hr=… frame=… layered=…`(取值形状取自探针实跑, 见 corner/tests.rs 的格式单测),模板已按此补齐,并注明「看上去圆不圆」同样不可信。 门禁(`CARGO_TARGET_DIR=C:/Temp/ull-target/wt-116`, `-j 4`,退出码逐个落盘): check 0 / fmt --check 0 / `cargo test -p unlucky-app-iced --lib` 0(447 passed, 0 failed, 2 ignored)。 行数:appearance.rs 130、state.rs 343、pages/appearance/mod.rs 180(均 ≤400)。
This commit is contained in:
1 parent
41746d1612
commit
bc3a2b56a4
3 files changed
+15
-8
No files matched your search
@@ -5,16 +5,18 @@
|
||||
//! | 动作 | 唯一落点 | 为什么 |
|
||||
//! |---|---|---|
|
||||
//! | 下发整窗 α | [`App::apply_window_alpha`] → `app::window_alpha::dispatch` | 判据在 `platform`、FFI 在 `platform/win32`,这里只做「取 α → 交给执行侧 → 记日志」 |
|
||||
//! | 写回配置 | [`App::persist_appearance`](8 个 UI 字段)+ `AppCommand::SetSetting`(另外两个只读键) | 每个键**只有一个写者**:`AppearancePrefs` 里没有 `window_opacity` / `palette_source`,它们只能走 schema 指令 |
|
||||
//! | 写回配置 | [`App::persist_appearance`](8 个 UI 字段)+ `AppCommand::SetSetting`(另外**三个**只读键) | 每个键**只有一个写者**:`AppearancePrefs` 里没有 `window_opacity` / `palette_source` / `window_corner`,它们只能走 schema 指令 |
|
||||
//! | 取证日志 | [`App::log_appearance`] | 一行里同时有请求值、生效值、下发字节与 FFI 结局 |
|
||||
//!
|
||||
//! ## 为什么「写回」要分两条路
|
||||
//!
|
||||
//! `SettingsBridge::persist` 收的是 `AppearancePrefs`(背景图四件 + 面板 α + 玻璃 + 强调色),
|
||||
//! 它的实现是「先读文件当前值,再覆盖我们改的那几个字段」——所以用它写**它覆盖的键**最省事,
|
||||
//! 也不会把用户的自定义强调色冲掉。而 `appearance.window_opacity` / `appearance.palette_source`
|
||||
//! 不在那个结构里(它们是「只读下层键」,见 `presenter::prefs::AppearanceBase`),
|
||||
//! 也不会把用户的自定义强调色冲掉。而 `appearance.window_opacity` / `appearance.palette_source` /
|
||||
//! `appearance.window_corner` 不在那个结构里(它们是「只读下层键」,见
|
||||
//! `presenter::prefs::AppearanceBase` 的**四个**字段:整窗 α / 标题栏三态 / 配色来源 / 窗口圆角),
|
||||
//! 写它们只能走 schema 白名单指令 `AppCommand::SetSetting`(真 host 用 `SettingStore::set` 落盘)。
|
||||
//! 其中「标题栏三态」目前**没有 UI 写者**(D37 的接线未落地),所以走 `SetSetting` 的是**三个**键。
|
||||
|
||||
use unlucky_presenter::dto::AppCommand;
|
||||
|
||||
@@ -65,7 +67,8 @@ impl App {
|
||||
self.refresh_view();
|
||||
|
||||
match change.key() {
|
||||
// 两个只读下层键:走 schema 指令(`SettingsBridge` 的结构里没有它们)。
|
||||
// 三个只读下层键(整窗 α / 配色来源 / 窗口圆角):走 schema 指令
|
||||
// (`SettingsBridge` 的结构里没有它们;标题栏三态还没有 UI 写者,不在此列)。
|
||||
Some(_)
|
||||
if matches!(
|
||||
change,
|
||||
|
||||
@@ -193,8 +193,8 @@ impl App {
|
||||
let width = WINDOW_SIZE.width;
|
||||
let height = WINDOW_SIZE.height;
|
||||
let theme_mode = bridge.load().1;
|
||||
// 外观两半分开读:`load()` 给 8 个 UI 写入字段,`load_base()` 给 3 个只读下层键
|
||||
// (整窗 α / 标题栏三态 / 配色来源)。M93 之前这两个键在 app 侧**根本读不到**。
|
||||
// 外观两半分开读:`load()` 给 8 个 UI 写入字段,`load_base()` 给 4 个只读下层键
|
||||
// (整窗 α / 标题栏三态 / 配色来源 / 窗口圆角)。M93 之前这些键在 app 侧**根本读不到**。
|
||||
//
|
||||
// 截图通道**不读用户配置**(D30:同一份代码在两台机器上要出同一张图):外观一律取出厂值,
|
||||
// 矩阵需要的值由 `ULL_APPEARANCE_*` 显式灌进来。
|
||||
|
||||
@@ -39,8 +39,12 @@
|
||||
//! ## 取证
|
||||
//!
|
||||
//! 每一处改动都打一行 [`state::State::log_line`]:`[appearance] window_alpha=… panel_alpha=…
|
||||
//! byte=…`。数值是**下发前**的字节(不是观感),因为在 RDP + 虚拟显示适配器上「看上去多透明」
|
||||
//! 不可信。截图矩阵用 `ULL_APPEARANCE_*` 环境变量灌值(见 [`state`] 的常量)。
|
||||
//! byte=… corner=…`;圆角另有一条独立管线,行形如
|
||||
//! `[corner] <ctx> corner=policy=system source=dwm os=10.0.26100 excluded_reason=none
|
||||
//! radius=system pref=2 readback=? read_hr=0x80070057 frame=popup layered=on`
|
||||
//! (见 `app::update::appearance` 与 `platform::win32::corner::format_line`)。数值是**下发前**的
|
||||
//! 字节/属性值(不是观感),因为在 RDP + 虚拟显示适配器上「看上去多透明 / 圆不圆」不可信。
|
||||
//! 截图矩阵用 `ULL_APPEARANCE_*` 环境变量灌值(见 [`state`] 的常量)。
|
||||
|
||||
pub mod alpha;
|
||||
pub mod background;
|
||||
|
||||
Reference in new issue
Block a user