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:
authorAntony Riakiotakis <kalast@gmail.com>2014-10-20 19:37:13 +0400
committerAntony Riakiotakis <kalast@gmail.com>2014-10-20 19:37:13 +0400
commit5362995fdee8958174803c9ebf3c0e073590bcc2 (patch)
tree9eda9734d3e5a4d69dd8b4fd8d05b571f78d050f
parentf95241eb3e76fc208a260200c873b43849e165ac (diff)
Fix trim tools metastrip borders not getting updated correctly.
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 7f802f4dafe..1f87d6180f0 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -1280,15 +1280,14 @@ static int trim_add_sequences_rec(ListBase *seqbasep, Sequence **seq_array, bool
for (seq = seqbasep->first; seq; seq = seq->next) {
if ((((seq->type & SEQ_TYPE_EFFECT) == 0) || !do_trim) && (seq->flag & SELECT)) {
+ seq_array[offset + num_items] = seq;
+ trim[offset + num_items] = do_trim;
+ num_items++;
+
if (seq->type == SEQ_TYPE_META) {
/* trim the sub-sequences */
num_items += trim_add_sequences_rec(&seq->seqbase, seq_array, trim, num_items + offset, false);
}
- else {
- seq_array[offset + num_items] = seq;
- trim[offset + num_items] = do_trim;
- num_items++;
- }
}
}
@@ -1301,13 +1300,12 @@ static int trim_count_sequences_rec(ListBase *seqbasep, bool first_level) {
for (seq = seqbasep->first; seq; seq = seq->next) {
if ((((seq->type & SEQ_TYPE_EFFECT) == 0) || !first_level) && (seq->flag & SELECT)) {
+ trimmed_sequences++;
+
if (seq->type == SEQ_TYPE_META) {
/* trim the sub-sequences */
trimmed_sequences += trim_count_sequences_rec(&seq->seqbase, false);
}
- else {
- trimmed_sequences++;
- }
}
}
@@ -1361,7 +1359,8 @@ static bool sequencer_trim_recursively(Scene *scene, TrimData *data, int offset)
Editing *ed = BKE_sequencer_editing_get(scene, false);
int i;
- for (i = 0; i < data->num_seq; i++) {
+ /* we iterate in reverse so metastrips are iterated after their children */
+ for (i = data->num_seq - 1; i >= 0; i--) {
Sequence *seq = data->seq_array[i];
int endframe;
/* we have the offset, do the terrible math */