Merge branch 'master' into blender2.8
authorAntonio Vazquez <blendergit@gmail.com>
Tue, 5 Dec 2017 18:04:34 +0000 (19:04 +0100)
committerAntonio Vazquez <blendergit@gmail.com>
Tue, 5 Dec 2017 18:04:34 +0000 (19:04 +0100)
build_files/cmake/platform/platform_win32.cmake
source/blender/blenkernel/BKE_animsys.h
source/blender/editors/space_sequencer/sequencer_edit.c

index 5cc5fb8c7d60a3b2d4b585e3d9c255a1c81ad75c..d1a19784365a5a05f992574c6a64f243e87809e3 100644 (file)
@@ -142,10 +142,8 @@ if(NOT DEFINED LIBDIR)
                message(STATUS "32 bit compiler detected.")
                set(LIBDIR_BASE "windows")
        endif()
-       if(MSVC_VERSION EQUAL 1911)
-               message(STATUS "Visual Studio 2017 detected.")
-               set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
-       elseif(MSVC_VERSION EQUAL 1910)
+       # Can be 1910..1912
+       if(MSVC_VERSION GREATER_EQUAL 1910)
                message(STATUS "Visual Studio 2017 detected.")
                set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
        elseif(MSVC_VERSION EQUAL 1900)
index 7b3ae70b9f89eb1b527ecdb2db665bcccc8528df..d95b4a838b8a9d6244704addbbbeb8584f142821 100644 (file)
@@ -35,6 +35,7 @@ struct ID;
 struct ListBase;
 struct Main;
 struct AnimData;
+struct FCurve;
 struct KeyingSet;
 struct KS_Path;
 struct PathResolvedRNA;
index 9e48ab294d91fdb6bc99db564105743a20157e76..8f6eb064b0dbf154baf23c78f2e81ff1e7684184 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,13 +709,15 @@ 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->endstill)) {
+       else if (((seq->start + seq->len) == cutframe) ||
+                (((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) {
@@ -744,7 +746,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;
@@ -755,7 +757,9 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence *seq, int cutframe)
                }
                
                /* strips with extended stillframes after */
-               else if (((seqn->start + seqn->len) < cutframe) && (seqn->endstill)) {
+               else if (((seqn->start + seqn->len) == cutframe) ||
+                        (((seqn->start + seqn->len) < cutframe) && (seqn->endstill)))
+               {
                        seqn->start = cutframe;
                        seqn->startofs = 0;
                        seqn->anim_startofs += ts.len - 1;
@@ -791,7 +795,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;
@@ -805,11 +809,13 @@ 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->endstill)) {
+       else if (((seq->start + seq->len) == cutframe) ||
+                (((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) {
@@ -835,9 +841,9 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence *seq, int cutframe)
                        seqn->endofs = ts.endofs;
                        seqn->endstill = ts.endstill;
                }
-               
+
                /* normal strip */
-               else if ((cutframe >= seqn->start) && (cutframe <= (seqn->start + seqn->len))) {
+               if ((cutframe >= seqn->start) && (cutframe < (seqn->start + seqn->len))) {
                        seqn->startstill = 0;
                        seqn->startofs = cutframe - ts.start;
                        seqn->endofs = ts.endofs;
@@ -845,7 +851,9 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence *seq, int cutframe)
                }
                
                /* strips with extended stillframes after */
-               else if (((seqn->start + seqn->len) < cutframe) && (seqn->endstill)) {
+               else if (((seqn->start + seqn->len) == cutframe) ||
+                        (((seqn->start + seqn->len) < cutframe) && (seqn->endstill)))
+               {
                        seqn->start = cutframe - ts.len + 1;
                        seqn->startofs = ts.len - 1;
                        seqn->endstill = ts.enddisp - cutframe - 1;