edl->session->edit_handle_mode[session->drag_button],
edl->session->labels_follow_edits,
edl->session->plugins_follow_edits,
- edl->session->autos_follow_edits);
+ edl->session->autos_follow_edits,
+ session->drag_edit->group_id);
finish_modify_handles();
//printf("MWindow::modify_handles 1\n");
for( ; plugin; plugin=(Plugin *)plugin->next ) {
if( plugin->startproject >= start )
plugin->startproject += edit->length;
+ else if( plugin->startproject+plugin->length > end )
+ plugin->length += end - start;
Auto *default_keyframe = plugin->keyframes->default_auto;
if( default_keyframe->position >= start )
default_keyframe->position += edit->length;
keyframe->position += edit->length;
}
}
+ plugin_set->optimize();
}
}
}
for( ; plugin; plugin=(Plugin *)plugin->next ) {
int64_t start = pos + plugin->startproject;
int64_t end = start + plugin->length;
- if( overwrite )
+ if( overwrite || edit_edits )
dst_plugin_set->clear(start, end, 1);
- Plugin *dst = dst_plugin_set->insert_plugin(
- plugin->title, start, end-start,
- plugin->plugin_type, &plugin->shared_location,
+ Plugin *new_plugin = dst_plugin_set->insert_plugin(plugin->title,
+ start, end-start, plugin->plugin_type, &plugin->shared_location,
(KeyFrame*)plugin->keyframes->default_auto, 0);
KeyFrame *keyframe = (KeyFrame*)plugin->keyframes->first;
for( ; keyframe; keyframe=(KeyFrame*)keyframe->next ) {
int64_t keyframe_pos = pos + keyframe->position;
- dst->keyframes->insert_auto(keyframe_pos, keyframe);
+ new_plugin->keyframes->insert_auto(keyframe_pos, keyframe);
}
}
}