ElyTable: a cell scrolls in by the least amount; a drag never scrolls under the pointer (T-02)
This commit is contained in:
6 files changed
+31
-6
No files matched your search
+1
-1
@@ -3,7 +3,7 @@
|
||||
`docs/BugList.md` 的 93 条,按清单次序逐条处理:先核对当前代码,已由先前改动修好的写明出处,其余修好、审查、提交、推送后勾上。
|
||||
|
||||
- [x] T-01 内核的图块与命中按像素网格,Ely 的光标、选区、表头按文档 twips,越远越错位 — R2.16 已修(图块 twips 与打印 twips 互换)
|
||||
- [ ] T-02 单元格光标露出边缘即把视图滚到中央,点击与拖选时视图跳动
|
||||
- [x] T-02 单元格光标露出边缘即把视图滚到中央,点击与拖选时视图跳动 — R1 拖选中仍滚、超宽格跳回起点;R2 PASS
|
||||
- [ ] T-03 视口比工作表宽时网格先居中再左移一次
|
||||
- [x] T-04 从不调用 `setClientZoom`,内核命中与几何按默认缩放算 — R2.16 已修(worker 每次报可见区前 setClientZoom)
|
||||
- [ ] T-05 文档尺寸按内核像素取整,表尾被裁
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
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 像素,连续两次复现。修复方向:目标大于视口且覆盖当前可视区时保持当前位置,其余情况采用最小必要位移;补充超宽列及超高行的回归断言。副本中保留这种已覆盖视口的位置后,此探针通过。
|
||||
@@ -0,0 +1 @@
|
||||
PASS
|
||||
Reference in new issue
Block a user