From 1b79b4dd30b6900717458707b0ddd656b384413f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 8 Oct 2021 01:54:48 +1100 Subject: Fix sequencer preview poll function sequencer_view_preview_poll returned true even when in the "Sequence" view. Now check the preview is visible, also check the region is expected type so preview actions aren't possible for mixed sequence/preview display. --- .../editors/space_sequencer/sequencer_edit.c | 32 ++++++++++++++++------ 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index b0273fe1e25..655cfb9375c 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -214,22 +214,38 @@ bool sequencer_strip_has_path_poll(bContext *C) bool sequencer_view_preview_poll(bContext *C) { SpaceSeq *sseq = CTX_wm_space_seq(C); - Editing *ed = SEQ_editing_get(CTX_data_scene(C)); - if (ed && sseq && (sseq->mainb == SEQ_DRAW_IMG_IMBUF)) { - return 1; + if (sseq == NULL) { + return false; + } + if (SEQ_editing_get(CTX_data_scene(C)) == NULL) { + return false; + } + if (!(ELEM(sseq->view, SEQ_VIEW_PREVIEW, SEQ_VIEW_SEQUENCE_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 0; + return true; } bool sequencer_view_strips_poll(bContext *C) { SpaceSeq *sseq = CTX_wm_space_seq(C); - if (sseq && ED_space_sequencer_check_show_strip(sseq)) { - return 1; + if (sseq == NULL) { + return false; } - - return 0; + if (!ED_space_sequencer_check_show_strip(sseq)) { + return false; + } + ARegion *region = CTX_wm_region(C); + if (!(region && region->regiontype == RGN_TYPE_WINDOW)) { + return false; + } + return true; } /** \} */ -- cgit v1.2.3