ripple edge drag_handle tweaks, sync_parameter fix, shuttlerc, shortcuts
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / edit.C
index 2c8eefcfbb0698a8b56553ed3190059cd92efac0..5321209acd68b7233a3b23d2ac1bb4da9edcadfe 100644 (file)
@@ -451,9 +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;
        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 )
-                       edit->startproject += cut_length;
+               startsource += cut_length;
+               length -= cut_length;
+               for( Edit *edit=next; edit; edit=edit->next )
+                       edit->startproject -= cut_length;
                break;
        case MOVE_ROLL:
                if( prev ) prev->trim(cut_length);
                break;
        case MOVE_ROLL:
                if( prev ) prev->trim(cut_length);
@@ -500,6 +501,7 @@ int Edit::shift_end(int edit_mode, int64_t newposition, int64_t oldposition,
 
        switch( edit_mode ) {
        case MOVE_RIPPLE:
 
        switch( edit_mode ) {
        case MOVE_RIPPLE:
+       case MOVE_EDGE:
                rest_moved = 1;
                length += cut_length;
                for( Edit *edit=next; edit; edit=edit->next )
                rest_moved = 1;
                length += cut_length;
                for( Edit *edit=next; edit; edit=edit->next )
@@ -527,12 +529,6 @@ int Edit::shift_end(int edit_mode, int64_t newposition, int64_t oldposition,
                        next->trim(-cut_length);
                }
                break;
                        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);
 
        }
        trim(0);