fix [#36027] Close gap shifts clip leaves keyframes behind

This commit is contained in:
Campbell Barton
2013-07-06 07:21:08 +00:00
parent 52e083fc3f
commit 152e1bed45

View File

@@ -866,7 +866,7 @@ static int cut_seq_list(Scene *scene, ListBase *slist, int cutframe,
return (seq_first_new != NULL);
}
static bool insert_gap(Scene *scene, int gap, int cfra)
static bool sequence_offset_after_frame(Scene *scene, const int delta, const int cfra)
{
Sequence *seq;
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
@@ -876,15 +876,13 @@ static bool insert_gap(Scene *scene, int gap, int cfra)
if (ed == NULL) return 0;
SEQP_BEGIN (ed, seq)
{
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
if (seq->startdisp >= cfra) {
seq->start += gap;
BKE_sequence_translate(scene, seq, delta);
BKE_sequence_calc(scene, seq);
done = true;
}
}
SEQ_END
return done;
}
@@ -1017,7 +1015,7 @@ static int sequencer_gap_remove_exec(bContext *C, wmOperator *op)
else if (BKE_sequencer_evaluate_frame(scene, cfra) == 0) {
done = true;
while (BKE_sequencer_evaluate_frame(scene, cfra) == 0) {
done = insert_gap(scene, -1, cfra);
done = sequence_offset_after_frame(scene, -1, cfra);
if (done == false) break;
}
if (done == false || do_all == false) break;
@@ -1054,7 +1052,7 @@ static int sequencer_gap_insert_exec(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
int frames = RNA_int_get(op->ptr, "frames");
insert_gap(scene, frames, CFRA);
sequence_offset_after_frame(scene, frames, CFRA);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);