1.9 KiB
FAIL
patches/libreoffice/0041-lok-calc-chart-beside-its-data.patch:21 — 图表定位仍受视口限制,大数据区或窄视口下会压住源数据。补丁扩大 aPositionRange 后继续调用 GetChartInsertPos;该函数将超出视口的图表挤回视口。实测把 A1:P50 全部填入数值 1,设置可见区为 (0,0,15000,10000) twips,光标回 A1,再以 A1:P50 插入柱图:源数据矩形为 (0,0,20479,12799),图表为 (5872,57,9071,5101),图表整个落在数据区内。A1:C5 配合 (0,0,6000,3500) 视口也复现,图表为 (57,57,9070,5101)。两次独立运行结果一致,保存后的 FODS 坐标及导出 PDF 渲染确认覆盖。修复方向:定位时保证最终图表矩形与源数据分离,允许放到当前视口之外并滚动展示;在 a_new_chart_lands_beside_its_data 中加入大数据区和窄视口用例。独立构建通过,现有 analysis 六项测试全部通过,补丁序列测试通过;证据见 /tmp/ely-r2-10-tests.log、/tmp/ely-r2-10-probes-repeat.log、/tmp/ely-r2-10-persisted.log。
patches/libreoffice/0041-lok-calc-chart-beside-its-data.patch:23 — 位置计算只参考图表源范围,其旁已有的数据会被覆盖,违反 R2.10 要求的“数据区旁的空白处”。具体场景:A1:C5 和 F1:P20 填入数值 1,D:E 留空,可见区为 (0,0,15000,10000) twips;在 A1 以 A1:C5 插入柱图。图表矩形为 (3897,57,9070,5101),覆盖数值单元格 F1,其矩形为 (6400,0,1279,255),并覆盖其下方多行数据;保存后的 FODS 与 PDF 渲染同样复现。现有 analysis.rs:352 的断言在此仍成立,因为图表左边界 3897 大于源数据右边界 3839。修复方向:检查整个候选图表矩形对应的已有单元格,选择足以容纳图表的空白区域;补充相邻独立数据块的回归断言。证据见 /tmp/ely-r2-10-probes-repeat.log、/tmp/ely-r2-10-persisted.log、/tmp/ely-r2-10-validation.log。