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
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.
-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");