diff options
-rw-r--r-- | build_files/cmake/platform/platform_win32.cmake | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_animsys.h | 1 | ||||
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_edit.c | 30 |
3 files changed, 22 insertions, 15 deletions
diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index 5cc5fb8c7d6..d1a19784365 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -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) diff --git a/source/blender/blenkernel/BKE_animsys.h b/source/blender/blenkernel/BKE_animsys.h index 7b3ae70b9f8..d95b4a838b8 100644 --- a/source/blender/blenkernel/BKE_animsys.h +++ b/source/blender/blenkernel/BKE_animsys.h @@ -35,6 +35,7 @@ struct ID; struct ListBase; struct Main; struct AnimData; +struct FCurve; struct KeyingSet; struct KS_Path; struct PathResolvedRNA; diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 9e48ab294d9..8f6eb064b0d 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -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; |