fix(timeline): place a clip from empty space on top of what it covers
Dropping a new clip whose in-point landed in empty track space (the stored-range model allows holes between blocks; the C++ layout is contiguous) left the overlapped clip untouched AND inserted the new clip before it in track order, so it slid UNDER the clip it covered. Starting on a clip already overwrote correctly, so the behavior depended on where the in-point happened to fall. TrackRippleRemoveAreaCommand::prepare now handles the hole case (no block spans the range start): nothing is trimmed on the left, the insertion anchor is the last block ending at/before the range, and the shared trailing scan removes/head-trims the blocks the range covers. Regression tests: domain_test (command level) and graphops (the app's place_footage_clip path).
This commit is contained in:
@@ -798,6 +798,11 @@ python3 tooling/coverage_report.py --json target/coverage.json
|
||||
(gpui 子模块提交见 `oak-gpui`。)
|
||||
- **OCIO 参数面板**:Vec4 评分参数(对比度/偏移/曝光)建 4 个 SpinBox,
|
||||
`base` 步长锚定范围(pivot 不再一拖就飞出 ±10000)。
|
||||
- **拖放覆盖修复**:`TrackRippleRemoveAreaCommand::prepare` 补"范围起点落在
|
||||
块间空洞"分支(C++ 布局连续、无此情形)——此前该情形下既不裁剪后面的
|
||||
重叠块、又把新块插到它前面,导致"起点在空白、终点压在别的 clip 上"时
|
||||
新 clip 被压在下层而不是覆盖。现在统一与起点在 clip 上时一致:重叠部分
|
||||
被移除、新块在前。`domain_test` 与 `graphops` 各补一条回归断言。
|
||||
|
||||
## 8. 风险与对策
|
||||
|
||||
|
||||
Reference in New Issue
Block a user