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:
authorPhilipp Oeser <info@graphics-engineer.com>2020-01-10 15:33:25 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2020-01-29 13:44:56 +0300
commitaa123555d7a75c784f479b9572145f45862bcb2b (patch)
tree03d0bc692a662accdd2c256a764f65c34f11b727 /source/blender/editors
parent67a60504990a6203304527a8bdb3a09041ca28d0 (diff)
Fix T73014: Marker sync does not work correctly if moving strip so it overlaps another strip
Need to also offset markers in BKE_sequence_base_shuffle_time(). Also clarify/correct related comments. Maniphest Tasks: T73014 Differential Revision: https://developer.blender.org/D6555
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/transform/transform.c2
-rw-r--r--source/blender/editors/transform/transform_convert.c4
-rw-r--r--source/blender/editors/transform/transform_convert_sequencer.c10
3 files changed, 10 insertions, 6 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 31ecf4f0c88..441a6eb0ea5 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -2561,7 +2561,7 @@ int transformEnd(bContext *C, TransInfo *t)
/* aftertrans does insert keyframes, and clears base flags; doesn't read transdata */
special_aftertrans_update(C, t);
- /* free data */
+ /* Free data, also handles overlap [in freeTransCustomData()]. */
postTrans(C, t);
/* send events out for redraws */
diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c
index a214eb1c80b..869c23de74c 100644
--- a/source/blender/editors/transform/transform_convert.c
+++ b/source/blender/editors/transform/transform_convert.c
@@ -1892,8 +1892,8 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
SpaceSeq *sseq = (SpaceSeq *)t->sa->spacedata.first;
- /* marker transform, not especially nice but we may want to move markers
- * at the same time as keyframes in the dope sheet. */
+ /* Marker transform, not especially nice but we may want to move markers
+ * at the same time as strips in the Video Sequencer. */
if ((sseq->flag & SEQ_MARKER_TRANS) && (canceled == 0)) {
/* cant use TFM_TIME_EXTEND
* for some reason EXTEND is changed into TRANSLATE, so use frame_side instead */
diff --git a/source/blender/editors/transform/transform_convert_sequencer.c b/source/blender/editors/transform/transform_convert_sequencer.c
index 86b6ebe3ffa..4baf0e8a3cb 100644
--- a/source/blender/editors/transform/transform_convert_sequencer.c
+++ b/source/blender/editors/transform/transform_convert_sequencer.c
@@ -381,6 +381,10 @@ static void freeSeqData(TransInfo *t, TransDataContainer *tc, TransCustomData *c
}
if (overlap) {
+ const bool use_sync_markers = (((SpaceSeq *)t->sa->spacedata.first)->flag &
+ SEQ_MARKER_TRANS) != 0;
+ ListBase *markers = &t->scene->markers;
+
bool has_effect_root = false, has_effect_any = false;
for (seq = seqbasep->first; seq; seq = seq->next) {
seq->tmp = NULL;
@@ -425,7 +429,7 @@ static void freeSeqData(TransInfo *t, TransDataContainer *tc, TransCustomData *c
}
}
- BKE_sequence_base_shuffle_time(seqbasep, t->scene);
+ BKE_sequence_base_shuffle_time(seqbasep, t->scene, markers, use_sync_markers);
for (seq = seqbasep->first; seq; seq = seq->next) {
if (seq->machine >= MAXSEQ * 2) {
@@ -437,10 +441,10 @@ static void freeSeqData(TransInfo *t, TransDataContainer *tc, TransCustomData *c
}
}
- BKE_sequence_base_shuffle_time(seqbasep, t->scene);
+ BKE_sequence_base_shuffle_time(seqbasep, t->scene, markers, use_sync_markers);
}
else {
- BKE_sequence_base_shuffle_time(seqbasep, t->scene);
+ BKE_sequence_base_shuffle_time(seqbasep, t->scene, markers, use_sync_markers);
}
if (has_effect_any) {