Files
oak-editor/docs
Mike-Solar d88e2d6ec1 fix(timeline): restore the C++ block length anchors and repair pointer edits
The two BlockCore length setters swapped their anchors relative to the
C++ semantics they document, so the ported edit commands produced wrong
geometry on the live UI paths: roll edits kept the seam still, slides
left negative in-points, and trims wrote the timeline in-point into
media_in (playing the wrong media content).

Adopt three stored-range primitives in block.rs:

- set_length_and_media_out: in fixed, out moves, media untouched
  (resize, trim-out, gaps growing rightward).
- set_length_and_media_in: in fixed, out moves, media_in += old-new
  (resize-with-media-in, splice right half, ripple trim-in).
- set_length_keeping_out (new): out fixed, in moves, media_in +=
  old-new (trim-in body and out-neighbour, slide out-neighbour,
  ripple trim-in of the trailing block).

Point every command at the primitive matching its intent (undopointer,
undogeneral, undoripple, undosplit, graphops, cli, nodeops) and fix the
two real defects the swap hid:

- TrackReplaceBlockWithGapCommand grew a following gap rightward,
  swallowing whatever followed it: the "dragging one clip moves
  unrelated clips" regression. The gap now grows leftward over the
  removed block's span; regression test in domain_test.
- The ripple/splice trims now advance media_in instead of rewriting it,
  and BlockSplitCommand writes both halves' ranges and media
  explicitly (the second half continues from the split point).

Rewrite the KNOWN-SWAP expectations to the correct geometry (roll moves
the seam, slide has no negative in-point, insert-gaps grows rightward,
resize-with-media-in yields media_in = 20) and add the missing media
assertions. TrackSlideCommand documents that the caller positions the
sliding blocks (the stored model has no track layout).
2026-09-24 12:41:29 +08:00
..

home, title, heroImage, heroText, heroFullScreen, tagline, actions, features, footer
home title heroImage heroText heroFullScreen tagline actions features footer
true Oak Video Editor /images/oak-icon.png Oak Video Editor false A modern, open-source, non-linear editor with a focus on speed and clarity.
text link type
Read the Docs /build.html primary
text link type
View Project Files /project-file-reference.html secondary
title details
Fast Editing Responsive timeline, smart caching, and efficient media handling.
title details
Built for Creators Clean UI, configurable shortcuts, and clear project structure.
title details
Open Source Transparent development with room for community ideas.
Copyright © Oak Video Editor

About Oak

Oak Video Editor is a renamed fork of Olive, focused on delivering a polished, creator-friendly editing experience. This site hosts build notes, project file references, and test plans for contributors.

Quick Start

  • Build from source on Windows, macOS, or Linux using the Build guide.
  • Learn how project data is stored in the Project File Reference.
  • Understand the database write-through persistence in the Project Storage Architecture.
  • Keep releases solid by following the Test Plan.