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:
authorCampbell Barton <ideasman42@gmail.com>2021-10-07 17:54:48 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-10-07 17:58:32 +0300
commit1b79b4dd30b6900717458707b0ddd656b384413f (patch)
tree4dd46d42a03a8ef9f7346a2d2779ad71153c631a
parentc7b237e7d1a4c2adf03d5b7dc97b87691e6e224b (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.
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c32
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;
}
/** \} */