diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-10-07 17:54:48 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-10-07 17:58:32 +0300 |
commit | 1b79b4dd30b6900717458707b0ddd656b384413f (patch) | |
tree | 4dd46d42a03a8ef9f7346a2d2779ad71153c631a /source/blender/editors/space_sequencer/sequencer_edit.c | |
parent | c7b237e7d1a4c2adf03d5b7dc97b87691e6e224b (diff) |
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.
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_edit.c')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_edit.c | 32 |
1 files 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; } /** \} */ |