diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-10-29 23:40:45 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-10-29 23:40:45 +0400 |
commit | 719c941c58f8b4acaced83c7521a6746fdd0841f (patch) | |
tree | 872bbb97dbcbc8610f52afe95986f307831b6d8f /source/blender/editors/space_sequencer | |
parent | f921f914542f6b1be2edae94c8fe98e8590f111a (diff) |
bugfix [#23155] Metastrip contents area allowed to move vertically, occasionally swapping order or overlapping
overlapping tests cant be done recursively
Diffstat (limited to 'source/blender/editors/space_sequencer')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_edit.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 35f27953633..1989502fc35 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1159,8 +1159,9 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op) } SEQ_END - /* test for effects and overlap */ - SEQP_BEGIN(ed, seq) { + /* test for effects and overlap + * dont use SEQP_BEGIN since that would be recursive */ + for(seq= ed->seqbasep->first; seq; seq= seq->next) { if(seq->flag & SELECT && !(seq->depth==0 && seq->flag & SEQ_LOCK)) { seq->flag &= ~SEQ_OVERLAP; if( seq_test_overlap(ed->seqbasep, seq) ) { @@ -1176,7 +1177,6 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op) calc_sequence(scene, seq); } } - SEQ_END; /* as last: */ sort_seq(scene); @@ -2008,16 +2008,16 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator *UNUSED(op)) recurs_del_seq_flag(scene, ed->seqbasep, SEQ_FLAG_DELETE, 0); - /* test for effects and overlap */ - SEQP_BEGIN(ed, seq) { + /* test for effects and overlap + * dont use SEQP_BEGIN since that would be recursive */ + for(seq= ed->seqbasep->first; seq; seq= seq->next) { if(seq->flag & SELECT) { seq->flag &= ~SEQ_OVERLAP; - if( seq_test_overlap(ed->seqbasep, seq) ) { + if(seq_test_overlap(ed->seqbasep, seq)) { shuffle_seq(ed->seqbasep, seq, scene); } } } - SEQ_END; sort_seq(scene); seq_update_muting(scene, ed); |