fix [#36027] Close gap shifts clip leaves keyframes behind
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user