remove file ogg/vorbis
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / mwindowedit.C
index 787ca44c5819555d1f4852292f81997ef63a2b17..7249f67ac9d5db56c0d48c6dbb807ed00d0ceca2 100644 (file)
@@ -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);