X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindowedit.C;h=7249f67ac9d5db56c0d48c6dbb807ed00d0ceca2;hp=787ca44c5819555d1f4852292f81997ef63a2b17;hb=f4204ea29aa3760a91c10791944ab848dd74ef8c;hpb=e375434717622cc3198a6bf9f7b7fb9fde555c21 diff --git a/cinelerra-5.1/cinelerra/mwindowedit.C b/cinelerra-5.1/cinelerra/mwindowedit.C index 787ca44c..7249f67a 100644 --- a/cinelerra-5.1/cinelerra/mwindowedit.C +++ b/cinelerra-5.1/cinelerra/mwindowedit.C @@ -825,15 +825,13 @@ void MWindow::insert_effect(char *title, int MWindow::modify_edithandles() { undo->update_undo_before(); + int handle_mode = edl->session->edit_handle_mode[session->drag_button]; edl->modify_edithandles(session->drag_start, - session->drag_position, - session->drag_handle, - edl->session->edit_handle_mode[session->drag_button], + session->drag_position, session->drag_handle, handle_mode, edl->session->labels_follow_edits, edl->session->plugins_follow_edits, edl->session->autos_follow_edits, session->drag_edit->group_id); - finish_modify_handles(); //printf("MWindow::modify_handles 1\n"); return 0; @@ -861,24 +859,21 @@ int MWindow::modify_pluginhandles() void MWindow::finish_modify_handles() { int edit_mode = edl->session->edit_handle_mode[session->drag_button]; - - if( (session->drag_handle == 1 && edit_mode != MOVE_NO_EDITS) || - (session->drag_handle == 0 && edit_mode == MOVE_ONE_EDIT) ) { -//printf("MWindow::finish_modify_handles %d\n", __LINE__); - edl->local_session->set_selectionstart(session->drag_position); - edl->local_session->set_selectionend(session->drag_position); - } - else - if( edit_mode != MOVE_NO_EDITS ) { -//printf("MWindow::finish_modify_handles %d\n", __LINE__); - edl->local_session->set_selectionstart(session->drag_start); - edl->local_session->set_selectionend(session->drag_start); - } - -// clamp the selection to 0 - if( edl->local_session->get_selectionstart(1) < 0 ) { - edl->local_session->set_selectionstart(0); - edl->local_session->set_selectionend(0); + double position = -1; + switch( edit_mode ) { + case MOVE_RIPPLE: + case MOVE_ROLL: + case MOVE_SLIDE: + position = session->drag_position; + break; + case MOVE_SLIP: + case MOVE_EDGE: + position = session->drag_start; + break; + } + if( position >= 0 ) { + edl->local_session->set_selectionstart(position); + edl->local_session->set_selectionend(position); } undo->update_undo_after(_("drag handle"), LOAD_EDITS | LOAD_TIMEBAR);