Design: Missing functionality in the edit modes in the VSE

In 3.0 alpha the edit mode selector was introduced with the Overwrite operator and is exposed in the header of the Sequencer.

These edit modes are somewhat incomplete in the current implementation and would need to cover more scenarios and have industry standard functionality. So, here’s a writeup on what is missing.

Overwrite Mode:

  • The basics are working as intended, however it should also work when drag and drop from outside of the sequencer ex. from File Browser, and during Adjust Last Operation and Time panel editing.

Ripple/Insert Mode(Current: Extend):

  • Drag and drop should split all strips at the transformed strip collection start point and push all following strips in the sequence to the right(currently it is shuffling). Pasteall/vpor (Diff)

  • Preview during Transform should preview the frame before or after the transformed strip collection, depending on the direction of movement during transform. The snap strip line can be used to display what end of the strip is being previewed.

  • When (re)moving strips in ripple mode, the gap left behind should be automatically closed(ripple delete).

  • It also should work when drag and drop from outside of the sequencer ex. from File Browser, and during Adjust Last Operation and Time panel editing.

Shuffle Mode:

  • A shuffle mode should shuffle strips like a deck of cards, where the order is changed, but the individual strips are not changed.

  • The current shuffle mode, should be renamed to Append.

  • Drag and drop will insert the transformed strip collection at the nearest split point in the non-transformed strips(like it is happening right now in the current Extend mode)

  • It should work when drag and drop from outside of the sequencer ex. from File Browser, and during Adjust Last Operation and Time panel editing.

Append Mode:

  • Like the old action for overlapping strips, except at appended strips always should be appended to the right and never to the left. This would be the typical mode for “Add” several new strips into the Sequencer for editing this would properly most have a place for legacy reasons or for fallback if the above functions fails.

Import Options:

  • Append: Add imported strips to the end of sequence.

  • Replace: Replace the file in the file browser with the source file of the strip.

  • Overwrite: At the intersection of playhead and active channels overwrite to insert new strips.

  • Insert: At the intersection of playhead and active channels, split existing strips and push them to the right to make room for the new strips.


  • Should paste at the intersection of playhead and active channels while respecting the edit mode.


  • Ex. moving strips by keyboard shortcuts could/should also respect there edit modes, so strips can be easily moved X/Y in the sequencer, for ex. changing channels when working with motion graphics in the Preview, quickly swapping strip positions or moving a strips “through” another strip without the other strip loses sync.

Missing functions:


Any thoughts VSE module members: @fsiddi @iss @sergey?

I think @fsiddi mentioned that ripple mode could be reworked and replace extend functionality, so this mode will be discussed and changed.

These modes are currently implemented only for transformation. This perhaps can be expanded as you propose, but I don’t like idea of using these modes for RNA properties that affect strip position.

Which ones, are the RNA ones?

Well all of them technically… But I mean like strip.frame_start and similar. Even though they do use overlap resolution method currently, this is already not same as transform operator uses.

Imo, are the VSE Edit modes comparable with the Edit modes in 3d view ex. all operators are operating differently whether your in vertex or object mode. And user have no way of knowing if their current action is executed through transform operator or something else.

Anyway, I hope the 3 of you dedicate some time to discuss what to do design wise with things like this.

It’s not really comparable - in 3D editor under different edit modes you affect different sets of data, but I think I get your point.

I am quite sure this will be discussed and you should have oportunity to add feedback to design task too.

When drag and drop in Overwrite mode the strip is inserted were it is dropped.

In Extend mode it is dropped in between the nearest strips.


This is inconsistent behaviour. And there is actually working code here to solve it(currently only working in one channel): Pasteall/vpor (Diff)


@iss For comparison, here’s drag and drop in the open source Shotcut editor: