[Bf-blender-cvs] [1b79b4dd30b] master: Fix sequencer preview poll function

Campbell Barton noreply at git.blender.org
Thu Oct 7 16:59:37 CEST 2021


Commit: 1b79b4dd30b6900717458707b0ddd656b384413f
Author: Campbell Barton
Date:   Fri Oct 8 01:54:48 2021 +1100
Branches: master
https://developer.blender.org/rB1b79b4dd30b6900717458707b0ddd656b384413f

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.

===================================================================

M	source/blender/editors/space_sequencer/sequencer_edit.c

===================================================================

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;
 }
 
 /** \} */



More information about the Bf-blender-cvs mailing list