Snippet content copied to clipboard.
Are you sure to delete this snippet? No, don't delete
  1. diff --git a/source/blender/editors/transform/transform_convert_sequencer.c b/source/blender/editors/transform/transform_convert_sequencer.c
  2. index a2698b342d0..3138c132f70 100644
  3. --- a/source/blender/editors/transform/transform_convert_sequencer.c
  4. +++ b/source/blender/editors/transform/transform_convert_sequencer.c
  5. @@ -303,8 +303,11 @@ static SeqCollection *extract_standalone_strips(SeqCollection *transformed_strip
  6. }
  7. /* Query strips positioned after left edge of transformed strips boundbox. */
  8. -static SeqCollection *query_right_side_strips(ListBase *seqbase, SeqCollection *transformed_strips)
  9. +static SeqCollection *query_right_side_strips(TransInfo *t, ListBase *seqbase, SeqCollection *transformed_strips)
  10. {
  11. + Main *bmain = CTX_data_main(t->context);
  12. + Scene *scene = t->scene;
  13. + Editing *ed = SEQ_editing_get(scene);
  14. int minframe = MAXFRAME;
  15. {
  16. Sequence *seq;
  17. @@ -312,10 +315,20 @@ static SeqCollection *query_right_side_strips(ListBase *seqbase, SeqCollection *
  18. minframe = min_ii(minframe, seq->startdisp);
  19. }
  20. }
  21. + /* Split before move for exact insert point. */
  22. + SEQ_sort(ed->seqbasep);
  23. + seqbase = SEQ_active_seqbase_get(ed);
  24. + LISTBASE_FOREACH (Sequence *, seq, seqbase) {
  25. + if ((seq->startdisp <= minframe) && (seq->enddisp >= minframe)) {
  26. + SEQ_edit_strip_split(
  27. + bmain, scene, seqbase, seq, minframe, SEQ_SPLIT_SOFT, NULL);
  28. + }
  29. + }
  30. + seqbase = SEQ_active_seqbase_get(SEQ_editing_get(scene));
  31. SeqCollection *collection = SEQ_collection_create(__func__);
  32. LISTBASE_FOREACH (Sequence *, seq, seqbase) {
  33. - if ((seq->flag & SELECT) == 0 && seq->startdisp >= minframe) {
  34. + if (seq->startdisp >= minframe) {
  35. SEQ_collection_append_strip(seq, collection);
  36. }
  37. }
  38. @@ -359,7 +372,7 @@ static void seq_transform_handle_expand_to_fit(TransInfo *t, SeqCollection *tran
  39. const bool use_sync_markers = (((SpaceSeq *)t->area->spacedata.first)->flag &
  40. SEQ_MARKER_TRANS) != 0;
  41. - SeqCollection *right_side_strips = query_right_side_strips(seqbasep, transformed_strips);
  42. + SeqCollection *right_side_strips = query_right_side_strips(t, seqbasep, transformed_strips);
  43. /* Temporarily move right side strips beyond timeline boundary. */
  44. Sequence *seq;

Edit this Snippet