diff options
author | Richard Antalik <richardantalik@gmail.com> | 2021-11-30 13:17:04 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2021-11-30 13:17:04 +0300 |
commit | e1cb2a226cfc5e688254c2101c6e0c694ff122f0 (patch) | |
tree | fc82e908924f02b5916e1c079714c68f4e04c721 /source/blender/editors | |
parent | 6f460b76fec18da63d5e7ed8f7ee94a08d0f4719 (diff) | |
parent | d8edc2c6345306b943d73d2806bea18b67c66bc3 (diff) |
Merge branch 'blender-v3.0-release'
Diffstat (limited to 'source/blender/editors')
6 files changed, 63 insertions, 14 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index 2bbc346fb50..896b64d97af 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -2097,6 +2097,10 @@ static int sequencer_draw_get_transform_preview_frame(Scene *scene) static void seq_draw_image_origin_and_outline(const bContext *C, Sequence *seq, bool is_active_seq) { SpaceSeq *sseq = CTX_wm_space_seq(C); + const ARegion *region = CTX_wm_region(C); + if (region->regiontype == RGN_TYPE_PREVIEW && !sequencer_view_preview_only_poll(C)) { + return; + } if ((seq->flag & SELECT) == 0) { return; } diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 899c2f6b4f4..ce538961875 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -210,7 +210,7 @@ bool sequencer_strip_has_path_poll(bContext *C) (SEQ_HAS_PATH(seq))); } -bool sequencer_view_preview_poll(bContext *C) +bool sequencer_view_has_preview_poll(bContext *C) { SpaceSeq *sseq = CTX_wm_space_seq(C); if (sseq == NULL) { @@ -231,6 +231,26 @@ bool sequencer_view_preview_poll(bContext *C) return true; } +bool sequencer_view_preview_only_poll(const bContext *C) +{ + SpaceSeq *sseq = CTX_wm_space_seq(C); + if (sseq == NULL) { + return false; + } + if (SEQ_editing_get(CTX_data_scene(C)) == NULL) { + return false; + } + if (!(ELEM(sseq->view, SEQ_VIEW_PREVIEW) && (sseq->mainb == SEQ_DRAW_IMG_IMBUF))) { + return false; + } + ARegion *region = CTX_wm_region(C); + if (!(region && region->regiontype == RGN_TYPE_PREVIEW)) { + return false; + } + + return true; +} + bool sequencer_view_strips_poll(bContext *C) { SpaceSeq *sseq = CTX_wm_space_seq(C); @@ -1710,8 +1730,11 @@ static int sequencer_delete_exec(bContext *C, wmOperator *UNUSED(op)) SEQ_prefetch_stop(scene); - const bool is_preview = sequencer_view_preview_poll(C); + const bool is_preview = sequencer_view_has_preview_poll(C); if (is_preview) { + if (!sequencer_view_preview_only_poll(C)) { + return OPERATOR_CANCELLED; + } SEQ_query_rendered_strips_to_tag(seqbasep, scene->r.cfra, 0); } @@ -3438,7 +3461,7 @@ void SEQUENCER_OT_cursor_set(wmOperatorType *ot) /* api callbacks */ ot->exec = sequencer_set_2d_cursor_exec; ot->invoke = sequencer_set_2d_cursor_invoke; - ot->poll = sequencer_view_preview_poll; + ot->poll = sequencer_view_has_preview_poll; /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h index 5982a0a8993..37f17de08a0 100644 --- a/source/blender/editors/space_sequencer/sequencer_intern.h +++ b/source/blender/editors/space_sequencer/sequencer_intern.h @@ -110,7 +110,8 @@ bool sequencer_edit_poll(struct bContext *C); /* UNUSED */ /* bool sequencer_strip_poll(struct bContext *C); */ bool sequencer_strip_has_path_poll(struct bContext *C); -bool sequencer_view_preview_poll(struct bContext *C); +bool sequencer_view_has_preview_poll(struct bContext *C); +bool sequencer_view_preview_only_poll(const struct bContext *C); bool sequencer_view_strips_poll(struct bContext *C); /* Externs. */ diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c index 8a8a24f08ff..cf18429862e 100644 --- a/source/blender/editors/space_sequencer/sequencer_select.c +++ b/source/blender/editors/space_sequencer/sequencer_select.c @@ -416,8 +416,11 @@ static int sequencer_de_select_all_exec(bContext *C, wmOperator *op) Editing *ed = SEQ_editing_get(scene); Sequence *seq; - const bool is_preview = sequencer_view_preview_poll(C); + const bool is_preview = sequencer_view_has_preview_poll(C); if (is_preview) { + if (!sequencer_view_preview_only_poll(C)) { + return OPERATOR_CANCELLED; + } SEQ_query_rendered_strips_to_tag(ed->seqbasep, scene->r.cfra, 0); } @@ -494,8 +497,11 @@ static int sequencer_select_inverse_exec(bContext *C, wmOperator *UNUSED(op)) Editing *ed = SEQ_editing_get(scene); Sequence *seq; - const bool is_preview = sequencer_view_preview_poll(C); + const bool is_preview = sequencer_view_has_preview_poll(C); if (is_preview) { + if (!sequencer_view_preview_only_poll(C)) { + return OPERATOR_CANCELLED; + } SEQ_query_rendered_strips_to_tag(ed->seqbasep, scene->r.cfra, 0); } @@ -866,6 +872,9 @@ static int sequencer_select_exec(bContext *C, wmOperator *op) } if (region->regiontype == RGN_TYPE_PREVIEW) { + if (!sequencer_view_preview_only_poll(C)) { + return OPERATOR_CANCELLED; + } const SpaceSeq *sseq = CTX_wm_space_seq(C); if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) { return OPERATOR_CANCELLED; @@ -1612,6 +1621,9 @@ static int sequencer_box_select_exec(bContext *C, wmOperator *op) ARegion *region = CTX_wm_region(C); if (region->regiontype == RGN_TYPE_PREVIEW) { + if (!sequencer_view_preview_only_poll(C)) { + return OPERATOR_CANCELLED; + } seq_box_select_seq_from_preview(C, &rectf, sel_op); sequencer_select_do_updates(C, scene); return OPERATOR_FINISHED; @@ -1671,6 +1683,11 @@ static int sequencer_box_select_invoke(bContext *C, wmOperator *op, const wmEven { Scene *scene = CTX_data_scene(C); View2D *v2d = &CTX_wm_region(C)->v2d; + ARegion *region = CTX_wm_region(C); + + if (region->regiontype == RGN_TYPE_PREVIEW && !sequencer_view_preview_only_poll(C)) { + return OPERATOR_CANCELLED; + } const bool tweak = RNA_boolean_get(op->ptr, "tweak"); @@ -2003,8 +2020,11 @@ static int sequencer_select_grouped_exec(bContext *C, wmOperator *op) ListBase *seqbase = SEQ_active_seqbase_get(SEQ_editing_get(scene)); Sequence *actseq = SEQ_select_active_get(scene); - const bool is_preview = sequencer_view_preview_poll(C); + const bool is_preview = sequencer_view_has_preview_poll(C); if (is_preview) { + if (!sequencer_view_preview_only_poll(C)) { + return OPERATOR_CANCELLED; + } SEQ_query_rendered_strips_to_tag(seqbase, scene->r.cfra, 0); if (actseq && actseq->tmp_tag == false) { actseq = NULL; diff --git a/source/blender/editors/space_sequencer/sequencer_view.c b/source/blender/editors/space_sequencer/sequencer_view.c index 2d2e7de7135..360aa2253de 100644 --- a/source/blender/editors/space_sequencer/sequencer_view.c +++ b/source/blender/editors/space_sequencer/sequencer_view.c @@ -405,7 +405,7 @@ void SEQUENCER_OT_view_ghost_border(wmOperatorType *ot) ot->invoke = WM_gesture_box_invoke; ot->exec = view_ghost_border_exec; ot->modal = WM_gesture_box_modal; - ot->poll = sequencer_view_preview_poll; + ot->poll = sequencer_view_has_preview_poll; ot->cancel = WM_gesture_box_cancel; /* Flags. */ diff --git a/source/blender/editors/transform/transform_convert_sequencer_image.c b/source/blender/editors/transform/transform_convert_sequencer_image.c index e8af1680a41..d5a59885014 100644 --- a/source/blender/editors/transform/transform_convert_sequencer_image.c +++ b/source/blender/editors/transform/transform_convert_sequencer_image.c @@ -118,16 +118,17 @@ static void freeSeqData(TransInfo *UNUSED(t), void createTransSeqImageData(TransInfo *t) { Editing *ed = SEQ_editing_get(t->scene); + const SpaceSeq *sseq = t->area->spacedata.first; + const ARegion *region = t->region; if (ed == NULL) { return; } - - { - const SpaceSeq *sseq = t->area->spacedata.first; - if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) { - return; - } + if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) { + return; + } + if (region->regiontype == RGN_TYPE_PREVIEW && sseq->view == SEQ_VIEW_SEQUENCE_PREVIEW) { + return; } ListBase *seqbase = SEQ_active_seqbase_get(ed); |