Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2013-05-02 12:25:22 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2013-05-02 12:25:22 +0400
commitf06343e0d8f8d4848ecafecef4a80c74cacde607 (patch)
tree94f2c860843c1b6efcbab83fea65431bd2760ecf /source/blender/makesrna/intern/rna_sequencer.c
parent0408684763c469bf675b4f374a034957cc71a3bc (diff)
Fix #35182: VSE - speed control Trim duration (soft) end reset to 0
Was a regression in rev53509, whic hallowed manual edit of properties which weren't supposed to be editing manually. Added the same effects length update as in trnaslation code, so now updating strip frames from py/interface will keep things consistent.
Diffstat (limited to 'source/blender/makesrna/intern/rna_sequencer.c')
-rw-r--r--source/blender/makesrna/intern/rna_sequencer.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c
index e522b73039b..64b8ef17e89 100644
--- a/source/blender/makesrna/intern/rna_sequencer.c
+++ b/source/blender/makesrna/intern/rna_sequencer.c
@@ -161,8 +161,20 @@ static void do_sequence_frame_change_update(Scene *scene, Sequence *seq)
{
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
ListBase *seqbase = BKE_sequence_seqbase(&ed->seqbase, seq);
+ Sequence *tseq;
BKE_sequence_calc_disp(scene, seq);
+ /* ensure effects are always fit in length to their input */
+
+ /* TODO(sergey): probably could be optimized.
+ * in terms skipping update of non-changing strips
+ */
+ for (tseq = seqbase->first; tseq; tseq = tseq->next) {
+ if (tseq->seq1 || tseq->seq2 || tseq->seq3) {
+ BKE_sequence_calc(scene, tseq);
+ }
+ }
+
if (BKE_sequence_test_overlap(seqbase, seq)) {
BKE_sequence_base_shuffle(seqbase, seq, scene); /* XXX - BROKEN!, uses context seqbasep */
}
@@ -1460,14 +1472,14 @@ static void rna_def_sequence(BlenderRNA *brna)
// RNA_def_property_clear_flag(prop, PROP_EDITABLE); /* overlap tests */
RNA_def_property_range(prop, 0, MAXFRAME);
RNA_def_property_ui_text(prop, "Start Still", "");
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_frame_change_update");
prop = RNA_def_property(srna, "frame_still_end", PROP_INT, PROP_TIME);
RNA_def_property_int_sdna(prop, NULL, "endstill");
// RNA_def_property_clear_flag(prop, PROP_EDITABLE); /* overlap tests */
RNA_def_property_range(prop, 0, MAXFRAME);
RNA_def_property_ui_text(prop, "End Still", "");
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_frame_change_update");
prop = RNA_def_property(srna, "channel", PROP_INT, PROP_UNSIGNED);
RNA_def_property_int_sdna(prop, NULL, "machine");