diff options
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_select.c')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_select.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c index 00c2caea258..3bef389f2de 100644 --- a/source/blender/editors/space_sequencer/sequencer_select.c +++ b/source/blender/editors/space_sequencer/sequencer_select.c @@ -929,7 +929,7 @@ static EnumPropertyItem sequencer_prop_select_grouped_types[] = { #define SEQ_IS_EFFECT(_seq) (_seq->type & SEQ_EFFECT) -#define SEQ_USE_DATA(_seq) (_seq->type == SEQ_SCENE || SEQ_HAS_PATH(_seq)) +#define SEQ_USE_DATA(_seq) (ELEM(_seq->type, SEQ_SCENE, SEQ_MOVIECLIP) || SEQ_HAS_PATH(_seq)) static short select_grouped_type(Editing *ed, Sequence *actseq) { @@ -985,7 +985,6 @@ static short select_grouped_data(Editing *ed, Sequence *actseq) { Sequence *seq; short changed = FALSE; - Scene *sce = actseq->scene; char *dir = actseq->strip ? actseq->strip->dir : NULL; if (!SEQ_USE_DATA(actseq)) @@ -1000,7 +999,8 @@ static short select_grouped_data(Editing *ed, Sequence *actseq) } SEQ_END; } - else { + else if (actseq->type == SEQ_SCENE) { + Scene *sce = actseq->scene; SEQP_BEGIN(ed, seq) { if (seq->type == SEQ_SCENE && seq->scene == sce) { seq->flag |= SELECT; @@ -1009,6 +1009,16 @@ static short select_grouped_data(Editing *ed, Sequence *actseq) } SEQ_END; } + else if (actseq->type == SEQ_MOVIECLIP) { + MovieClip *clip = actseq->clip; + SEQP_BEGIN(ed, seq) { + if (seq->type == SEQ_MOVIECLIP && seq->clip == clip) { + seq->flag |= SELECT; + changed = TRUE; + } + } + SEQ_END; + } return changed; } @@ -1117,6 +1127,10 @@ static short select_grouped_effect_link(Editing *ed, Sequence *actseq) return changed; } +#undef SEQ_IS_SOUND +#undef SEQ_IS_EFFECT +#undef SEQ_USE_DATA + static int sequencer_select_grouped_exec(bContext *C, wmOperator *op) { Scene *scene = CTX_data_scene(C); |