Revert "Fix T53430: Cut at the strip end fails w/ endstill"
authorCampbell Barton <ideasman42@gmail.com>
Mon, 5 Mar 2018 04:11:33 +0000 (15:11 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 5 Mar 2018 05:58:01 +0000 (16:58 +1100)
This reverts commit 855799ecc1c5e53d9fbfe520fd5402bc0138f674.

Caused T54200

source/blender/editors/space_sequencer/sequencer_edit.c

index 29a7e11d8592507e6cab1efaf251e7e9011ee992..4e487770a91940f5e88c0dc2fdccbd68c3aac0c2 100644 (file)
@@ -695,7 +695,7 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence *seq, int cutframe)
                BKE_sequence_calc(scene, seq);
        }
 
-       if ((seq->startstill) && (cutframe <= seq->start)) {
+       if ((seq->startstill) && (cutframe < seq->start)) {
                /* don't do funny things with METAs ... */
                if (seq->type == SEQ_TYPE_META) {
                        skip_dup = true;
@@ -709,15 +709,13 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence *seq, int cutframe)
                }
        }
        /* normal strip */
-       else if ((cutframe >= seq->start) && (cutframe < (seq->start + seq->len))) {
+       else if ((cutframe >= seq->start) && (cutframe <= (seq->start + seq->len))) {
                seq->endofs = 0;
                seq->endstill = 0;
                seq->anim_endofs += (seq->start + seq->len) - cutframe;
        }
        /* strips with extended stillframes after */
-       else if (((seq->start + seq->len) == cutframe) ||
-                (((seq->start + seq->len) < cutframe) && (seq->endstill)))
-       {
+       else if (((seq->start + seq->len) < cutframe) && (seq->endstill)) {
                seq->endstill -= seq->enddisp - cutframe;
                /* don't do funny things with METAs ... */
                if (seq->type == SEQ_TYPE_META) {
@@ -746,7 +744,7 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence *seq, int cutframe)
                }
                
                /* normal strip */
-               else if ((cutframe >= seqn->start) && (cutframe < (seqn->start + seqn->len))) {
+               else if ((cutframe >= seqn->start) && (cutframe <= (seqn->start + seqn->len))) {
                        seqn->start = cutframe;
                        seqn->startstill = 0;
                        seqn->startofs = 0;
@@ -757,9 +755,7 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence *seq, int cutframe)
                }
                
                /* strips with extended stillframes after */
-               else if (((seqn->start + seqn->len) == cutframe) ||
-                        (((seqn->start + seqn->len) < cutframe) && (seqn->endstill)))
-               {
+               else if (((seqn->start + seqn->len) < cutframe) && (seqn->endstill)) {
                        seqn->start = cutframe;
                        seqn->startofs = 0;
                        seqn->anim_startofs += ts.len - 1;
@@ -795,7 +791,7 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence *seq, int cutframe)
        /* First Strip! */
        /* strips with extended stillfames before */
        
-       if ((seq->startstill) && (cutframe <= seq->start)) {
+       if ((seq->startstill) && (cutframe < seq->start)) {
                /* don't do funny things with METAs ... */
                if (seq->type == SEQ_TYPE_META) {
                        skip_dup = true;
@@ -809,13 +805,11 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence *seq, int cutframe)
                }
        }
        /* normal strip */
-       else if ((cutframe >= seq->start) && (cutframe < (seq->start + seq->len))) {
+       else if ((cutframe >= seq->start) && (cutframe <= (seq->start + seq->len))) {
                seq->endofs = (seq->start + seq->len) - cutframe;
        }
        /* strips with extended stillframes after */
-       else if (((seq->start + seq->len) == cutframe) ||
-                (((seq->start + seq->len) < cutframe) && (seq->endstill)))
-       {
+       else if (((seq->start + seq->len) < cutframe) && (seq->endstill)) {
                seq->endstill -= seq->enddisp - cutframe;
                /* don't do funny things with METAs ... */
                if (seq->type == SEQ_TYPE_META) {
@@ -841,9 +835,9 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence *seq, int cutframe)
                        seqn->endofs = ts.endofs;
                        seqn->endstill = ts.endstill;
                }
-
+               
                /* normal strip */
-               if ((cutframe >= seqn->start) && (cutframe < (seqn->start + seqn->len))) {
+               else if ((cutframe >= seqn->start) && (cutframe <= (seqn->start + seqn->len))) {
                        seqn->startstill = 0;
                        seqn->startofs = cutframe - ts.start;
                        seqn->endofs = ts.endofs;
@@ -851,9 +845,7 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence *seq, int cutframe)
                }
                
                /* strips with extended stillframes after */
-               else if (((seqn->start + seqn->len) == cutframe) ||
-                        (((seqn->start + seqn->len) < cutframe) && (seqn->endstill)))
-               {
+               else if (((seqn->start + seqn->len) < cutframe) && (seqn->endstill)) {
                        seqn->start = cutframe - ts.len + 1;
                        seqn->startofs = ts.len - 1;
                        seqn->endstill = ts.enddisp - cutframe - 1;