X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fedit.C;h=47ca63c3ffe915a28469da28700988e616b28186;hp=2c8eefcfbb0698a8b56553ed3190059cd92efac0;hb=55b362978e0118efc34c0a654b19c99484c0f346;hpb=54cc56bff09f5004b2a6cd454375f06e56acf5a0 diff --git a/cinelerra-5.1/cinelerra/edit.C b/cinelerra-5.1/cinelerra/edit.C index 2c8eefcf..47ca63c3 100644 --- a/cinelerra-5.1/cinelerra/edit.C +++ b/cinelerra-5.1/cinelerra/edit.C @@ -451,8 +451,10 @@ int Edit::shift_start(int edit_mode, int64_t newposition, int64_t oldposition, switch( edit_mode ) { case MOVE_RIPPLE: edits_moved = rest_moved = 1; - if( prev ) prev->trim(cut_length); - for( Edit *edit=this; edit; edit=edit->next ) + startsource += cut_length; + cut_length = -cut_length; + length += cut_length; + for( Edit *edit=next; edit; edit=edit->next ) edit->startproject += cut_length; break; case MOVE_ROLL: @@ -500,6 +502,7 @@ int Edit::shift_end(int edit_mode, int64_t newposition, int64_t oldposition, switch( edit_mode ) { case MOVE_RIPPLE: + case MOVE_EDGE: rest_moved = 1; length += cut_length; for( Edit *edit=next; edit; edit=edit->next ) @@ -527,12 +530,6 @@ int Edit::shift_end(int edit_mode, int64_t newposition, int64_t oldposition, next->trim(-cut_length); } break; - case MOVE_EDGE: - edits_moved = 1; - if( prev ) prev->trim(cut_length); - startproject += cut_length; - length -= cut_length; - break; } trim(0); @@ -583,11 +580,11 @@ int Edit::follow_edits(int64_t start, int64_t end, int64_t cut_length, } if( edit_plugins ) { if( cut_length > 0 ) { - track->clear(end, end+cut_length, 0, 0, 1, 0, 0); + track->clear(end, end+cut_length, 0, 0, -1, 0, 0); track->shift_effects(start, cut_length, 1, 0); } else if( cut_length < 0 ) { - track->clear(start+cut_length, start, 0, 0, 1, 0, 0); + track->clear(start+cut_length, start, 0, 0, -1, 0, 0); track->shift_effects(end+cut_length, -cut_length, 1, 0); } }