X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fedits.C;h=ae7ab0c7d3ef8edf15119a71aeaa3728dc8a3e76;hp=26f49890d70cb22fbc1ea7351ab80f7a15edbba1;hb=c857b2fb7965d27d86d5785fb9f1b8957a871a1a;hpb=834732af87bfd7f1d4035109f31e48db12b415fa diff --git a/cinelerra-5.1/cinelerra/edits.C b/cinelerra-5.1/cinelerra/edits.C index 26f49890..ae7ab0c7 100644 --- a/cinelerra-5.1/cinelerra/edits.C +++ b/cinelerra-5.1/cinelerra/edits.C @@ -326,6 +326,14 @@ int Edits::optimize() } } +// trim edits before position 0 + while( first && first->startproject+first->length < 0 ) + delete first; + if( first && first->startproject < 0 ) { + first->length += first->startproject; + first->startproject = 0; + } + // Insert silence between edits which aren't consecutive for(current = last; current; current = current->previous) { @@ -730,17 +738,10 @@ int Edits::modify_handles(double oldposition, double newposition, int currentend double delta = newposition - oldposition; oldposition = track->from_units(current_edit->startproject); if( group_id > 0 ) newposition = oldposition + delta; - result = 1; -// dont move stuff if media playback does not shift in time - if( edit_mode != MOVE_MEDIA && edit_mode != MOVE_EDGE_MEDIA ) { - edit_labels = 0; - edit_plugins = 0; - edit_autos = 0; - } current_edit->shift_start(edit_mode, track->to_units(newposition, 0), track->to_units(oldposition, 0), - 0, edit_labels, edit_plugins, edit_autos, - trim_edits); + edit_labels, edit_autos, edit_plugins, trim_edits); + result = 1; } if(!result) current_edit = current_edit->next; @@ -760,7 +761,7 @@ int Edits::modify_handles(double oldposition, double newposition, int currentend current_edit->shift_end(edit_mode, track->to_units(newposition, 0), track->to_units(oldposition, 0), - edit_edits, edit_labels, edit_plugins, edit_autos, trim_edits); + edit_labels, edit_autos, edit_plugins, trim_edits); } if(!result) current_edit = current_edit->next;