+ case DRAG_GROUP:
+ mwindow->session->current_operation = NO_OPERATION;
+ EDL *drag_group = mwindow->session->drag_group;
+ if( drag_group ) {
+ Track *drop_track = mwindow->session->track_highlighted;
+ Track *drag_track = mwindow->session->drag_group_first_track;
+ Edit *drag_edit = mwindow->session->drag_group_edit;
+ Track *edit_track = drag_edit ? drag_edit->track : 0;
+ while( drop_track && edit_track ) {
+ if( edit_track == drag_track ) break;
+ edit_track = edit_track->previous;
+ drop_track = drop_track->previous;
+ }
+ if( drop_track && test_track_group(drag_group, drop_track) ) {
+ double position = mwindow->edl->get_cursor_position(cursor_x, pane->number);
+ position = mwindow->edl->align_to_frame(position, 0);
+ position -= mwindow->session->drag_group_position;
+ mwindow->move_group(drag_group, drop_track, position);
+ }
+ drag_group->remove_user();
+ mwindow->session->drag_group = 0;
+ }
+ result = 1;
+ break;