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:
authorRichard Antalik <richardantalik@gmail.com>2021-07-13 13:53:56 +0300
committerRichard Antalik <richardantalik@gmail.com>2021-07-13 13:53:56 +0300
commitd374469f4c045355b2e5b17d7ba5dae9c979c8c7 (patch)
treef8938fd7a693dc79130d958d8192d4db4b4b28b0 /source/blender/editors
parentaf42b35e53413a90200bd9d8b0c2051ceee081b5 (diff)
VSE: Make pasted strip active
When adding texts or various simple effects I often copy-paste strips to reuse properties from a template such as font or position. I assume this is common workflow. Issue with this workflow is, that active strip is not changed after pasting, so when adjusting property, it is original strip that is being modified. This is not issue when duplicating strips - selection state is transfered to duplicate strips, such that duplicate of active strip is set to be active and duplicate of selected strip is set to selected. Implement same selection transfering behavior in paste operator, that exists in duplicate operator. Since strip can be deleted after copying, it is not possible to rely on sequencer state. This is true even when pasting strips to different scene. Therefore active strip name must be stored in clipboard. Reviewed By: sergey, Severin Differential Revision: https://developer.blender.org/D11781
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 45c6931364d..75cf8542f67 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -2414,6 +2414,7 @@ static int sequencer_copy_exec(bContext *C, wmOperator *op)
(LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_FREE_NO_MAIN));
seqbase_clipboard_frame = scene->r.cfra;
+ SEQ_clipboard_active_seq_name_store(scene);
/* Remove anything that references the current scene. */
LISTBASE_FOREACH (Sequence *, seq, &seqbase_clipboard) {
@@ -2504,6 +2505,10 @@ static int sequencer_paste_exec(bContext *C, wmOperator *op)
BLI_movelisttolist(ed->seqbasep, &nseqbase);
for (iseq = iseq_first; iseq; iseq = iseq->next) {
+ if (SEQ_clipboard_pasted_seq_was_active(iseq)) {
+ SEQ_select_active_set(scene, iseq);
+ }
+
/* Make sure, that pasted strips have unique names. */
SEQ_ensure_unique_name(iseq, scene);
/* Translate after name has been changed, otherwise this will affect animdata of original