Files
ElyOffice/tasks/reviews/T-02-r1.md
T

1.6 KiB
Raw Blame History

FAIL

crates/ely-lok/src/view/scroll.rs:64 — show() 在鼠标按下、dragging=true 时仍根据单元格光标调整滚动,拖选坐标随回调改变,违反 docs/BugList.md T-02 的拖选要求及 PRD TABLE-02、LOK-04。真实 LOK 探针使用 large.rs 的 SHORT_ROWS、100% 缩放、200×70 像素视口:在 (180,65) 按下 C4,等待光标回调,再拖到原画面 B3 所在的 (130,40) 并释放;按下后的 scroll 从 (0,0) 变成 (824,29),最终选区为 C3:C4,预期为 B3:C4,连续两次复现。large.rs:145 的现有拖选测试在同一次 update 中发送全部鼠标事件,覆盖不到这次中途滚动。修复方向:拖选期间保持视图坐标稳定,保留键盘导航的最小滚动;回归测试在按下与移动之间等待内核回调,并核对滚动与最终选区。副本中抑制拖选期间的自动滚动后,此探针通过。

crates/ely-lok/src/view/scroll.rs:178 — 超出视口尺寸的目标总被对齐到起点,视口已处于单元格内部时仍大幅跳动,T-02 的最小滚动要求在超宽列上仍失败。真实 LOK 探针设置 A 列宽 20 cm、视口 400×200 像素、100% 缩放,横向 scroll=4500 twips(300 像素);A2 的图块横向区间为 0..11325 twips,完整覆盖当前视口 4500..10500。在 (50,30) 点击当前可见的 A2 后,scroll 立即归零,画面左跳 300 像素,连续两次复现。修复方向:目标大于视口且覆盖当前可视区时保持当前位置,其余情况采用最小必要位移;补充超宽列及超高行的回归断言。副本中保留这种已覆盖视口的位置后,此探针通过。