fix(app-iced): 版本列表在三栏对半分档按整行取高(S1b/S9)

列表视口高度不再是「Fill 剩下的」:正文列高度由仓里已有的 `frame::body_height` 算出,
经 `view_sized` → `body` → `rails::three_column` → `rows::content` 传下来,Shared 档据此
`floor(((h − LIST_CHROME)/2) / ROW_PITCH) * ROW_PITCH` 取整行。

实测(1180×760):列表 245px → **239px**(分隔线 498 → 492,腾出的 6px 归面板),
`04` 对照**未变**(531 / 278px),720 窄窗**未变**(本来就是 4.0 整行、底缘 0 墨迹)。

两处修正写在提交里:
1. 第一版给所有三栏场合取整,把 `04` 也缩到 239px ⇒ 收窄为只在 `TailShare::Shared` 取整;
2. `rows.rs` 涨到 419 行撞 400 行门禁 ⇒ `TailShare` 与三个标定量纯搬移到 `rows/tail.rs`,
   `rows.rs` 回到 355 行(门禁 `components::gate` 与全仓扫描都绿)。

`view` 保留 4 参数(`#[cfg(test)]`,只有单测用),产品路径走 `view_sized`。
This commit is contained in:
AskaEth committed 2026-11-10 19:34:13 +08:00
1 parent f29ca609ec
commit 954281d71a
5 files changed
+131 -55

No files matched your search

+7 -1
View File
@@ -232,7 +232,13 @@ fn render<'a>(
let page = match model.screen {
Screen::Instances => instances::view(ui, metrics, model, launch_form),
// M106:下载页此前写死成 `Lang::En`,现在跟 `model.lang`(页面文案跟着界面语言走)。
Screen::Download => download::view(ui, metrics, &model.download, model.lang),
Screen::Download => download::view_sized(
ui,
metrics,
&model.download,
model.lang,
model.window_height,
),
// M109:内容库页同样跟 `model.lang`
// M161:内容库要按**窗口高度**选版面(矮窗口不能把列表压扁),
// 正文可用高由 `frame::body_height` 从窗口高减掉外壳算出(唯一来源)。