diff --git a/panels/timeline.cpp b/panels/timeline.cpp index 3ba55d0ef..a84211137 100644 --- a/panels/timeline.cpp +++ b/panels/timeline.cpp @@ -1391,14 +1391,13 @@ void Timeline::toggle_links() { for (int i=0;iclips.size();i++) { Clip* c = sequence->clips.at(i); if (c != NULL && is_clip_selected(c, true)) { - command->clips.append(i); + if (!command->clips.contains(i)) command->clips.append(i); + if (c->linked.size() > 0) { command->link = false; // prioritize unlinking for (int j=0;jlinked.size();j++) { // add links to the command - if (!command->clips.contains(c->linked.at(j))) { - command->clips.append(c->linked.at(j)); - } + if (!command->clips.contains(c->linked.at(j))) command->clips.append(c->linked.at(j)); } } } diff --git a/project/undo.cpp b/project/undo.cpp index a169d9d7f..be8932c47 100644 --- a/project/undo.cpp +++ b/project/undo.cpp @@ -489,6 +489,7 @@ AddClipCommand::~AddClipCommand() { } void AddClipCommand::undo() { + panel_effect_controls->clear_effects(true); for (int i=0;iclips.last(); panel_timeline->deselect_area(c->timeline_in, c->timeline_out, c->track); @@ -539,6 +540,7 @@ void LinkCommand::undo() { void LinkCommand::redo() { old_links.clear(); for (int i=0;iclips.at(clips.at(i)); if (link) { for (int j=0;j