fix(app-iced): 删掉空操作串行门 + 钉住档位贯穿产品启动路径 + 退场起点接当前进度
复审 r2 的三条: 1) 删掉 motion::serialize() 那把串行门:PUMP/LAST_FRAME 都是 thread_local,libtest 每用例 一线程 ⇒ 它改变不了任何结果(ULL_MOTION=off 下握门照样红)。留一个不起作用的同步原语 比没有更坏。subscription.rs 与 motion_sync.rs 的 idle_app 恢复原签名。 2) 真实根因是「喂给 configure 的值」:idle_app 先钉 STANDARD,随后 on_boot → configure_motion(app/update.rs:276)→ boot_env::motion_scale(..) 再定一次档,把钉住覆盖掉。 改成 BYPASS_PROBE(bool) → FORCED_SCALE(Cell<Option<MotionScale>>):configure 里钉住优先, 于是三条定档路径(configure_for_test / on_boot / boot_env 的 env·后端 tier)都穿不过去。 两条用例钉住它(纯合成 + 真 Message::Boot),删掉「钉住优先」两处都红。 3) P2-2:Modal::Closing 记住起手进度 from,progress = from*(1-eased) —— 进场途中被关掉时 从当前进度接着缩,不再先跳到 1.0(反向硬跳)。新用例 closing_during_the_entrance_does_not_jump_to_fully_open,把 from 改回 1.0 即红。
This commit is contained in:
1 parent
c21c6df51b
commit
787cb16189
4 files changed
+122
-44
No files matched your search
@@ -291,7 +291,9 @@ impl Pump {
|
||||
Modal::Opening { start_ms } if now - start_ms >= self.leg_ms(spec.enter.duration) => {
|
||||
self.modal = Modal::Open
|
||||
}
|
||||
Modal::Closing { start_ms } if now - start_ms >= self.leg_ms(spec.exit.duration) => {
|
||||
Modal::Closing { start_ms, .. }
|
||||
if now - start_ms >= self.leg_ms(spec.exit.duration) =>
|
||||
{
|
||||
self.modal = Modal::Hidden;
|
||||
self.close_pending = true;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user