diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2015-11-20 19:33:53 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2015-11-22 17:33:45 +0300 |
commit | 307f1e7d2360de19d38a6b4c2e2b4323f505cf18 (patch) | |
tree | 87c12ecd138467317e4eb4e7b6e4015671165df0 /source/blender/editors | |
parent | 56ead9d34b8f473a44ba9f9fb0ff4878ea28af3e (diff) |
Fix T46678: Extending left handle of a VSE multicam effect strip with snap creates frame stills.
Also fixes cache handling for those strips, they need more radical flushing...
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_edit.c | 2 | ||||
-rw-r--r-- | source/blender/editors/transform/transform_generics.c | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index e9a4bc81e14..09560bfdd61 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1206,6 +1206,7 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op) BKE_sequence_tx_set_final_right(seq, snap_frame); } BKE_sequence_tx_handle_xlimits(seq, seq->flag & SEQ_LEFTSEL, seq->flag & SEQ_RIGHTSEL); + BKE_sequence_single_fix(seq); } BKE_sequence_calc(scene, seq); } @@ -2516,6 +2517,7 @@ static int sequencer_meta_toggle_exec(bContext *C, wmOperator *UNUSED(op)) #if 1 BKE_sequence_tx_set_final_left(ms->parseq, ms->disp_range[0]); BKE_sequence_tx_set_final_right(ms->parseq, ms->disp_range[1]); + BKE_sequence_single_fix(seq); BKE_sequence_calc(scene, ms->parseq); #else if (BKE_sequence_test_overlap(ed->seqbasep, ms->parseq)) diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index baafaece2e5..8d64b5f7577 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -951,7 +951,13 @@ static void recalcData_sequencer(TransInfo *t) Sequence *seq = tdsq->seq; if (seq != seq_prev) { - BKE_sequence_invalidate_dependent(t->scene, seq); + if (BKE_sequence_tx_fullupdate_test(seq)) { + /* A few effect strip types need a complete recache on transform. */ + BKE_sequence_invalidate_cache(t->scene, seq); + } + else { + BKE_sequence_invalidate_dependent(t->scene, seq); + } } seq_prev = seq; |