[Bf-blender-cvs] [746ee29d363] master: Fix T91700: Strips can be transformed in scope display modes

Campbell Barton noreply at git.blender.org
Mon Oct 18 10:32:03 CEST 2021


Commit: 746ee29d3638402e2435f47787087b6458f026c7
Author: Campbell Barton
Date:   Mon Oct 18 19:28:17 2021 +1100
Branches: master
https://developer.blender.org/rB746ee29d3638402e2435f47787087b6458f026c7

Fix T91700: Strips can be transformed in scope display modes

Hide gizmos & prevent transform & selection in scope display.

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

M	source/blender/editors/space_sequencer/sequencer_select.c
M	source/blender/editors/transform/transform_convert_cursor.c
M	source/blender/editors/transform/transform_convert_sequencer_image.c
M	source/blender/editors/transform/transform_gizmo_2d.c

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

diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c
index e193cde4535..b4271ebd812 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -786,11 +786,19 @@ static int sequencer_select_exec(bContext *C, wmOperator *op)
   View2D *v2d = UI_view2d_fromcontext(C);
   Scene *scene = CTX_data_scene(C);
   Editing *ed = SEQ_editing_get(scene);
+  ARegion *region = CTX_wm_region(C);
 
   if (ed == NULL) {
     return OPERATOR_CANCELLED;
   }
 
+  if (region->regiontype == RGN_TYPE_PREVIEW) {
+    const SpaceSeq *sseq = CTX_wm_space_seq(C);
+    if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) {
+      return OPERATOR_CANCELLED;
+    }
+  }
+
   bool extend = RNA_boolean_get(op->ptr, "extend");
   bool deselect = RNA_boolean_get(op->ptr, "deselect");
   bool deselect_all = RNA_boolean_get(op->ptr, "deselect_all");
@@ -801,7 +809,6 @@ static int sequencer_select_exec(bContext *C, wmOperator *op)
   mval[0] = RNA_int_get(op->ptr, "mouse_x");
   mval[1] = RNA_int_get(op->ptr, "mouse_y");
 
-  ARegion *region = CTX_wm_region(C);
   int handle_clicked = SEQ_SIDE_NONE;
   Sequence *seq = NULL;
   if (region->regiontype == RGN_TYPE_PREVIEW) {
diff --git a/source/blender/editors/transform/transform_convert_cursor.c b/source/blender/editors/transform/transform_convert_cursor.c
index 8a4a13eb4db..ed96eba7f6c 100644
--- a/source/blender/editors/transform/transform_convert_cursor.c
+++ b/source/blender/editors/transform/transform_convert_cursor.c
@@ -111,7 +111,9 @@ void recalcData_cursor_image(TransInfo *t)
 void createTransCursor_sequencer(TransInfo *t)
 {
   SpaceSeq *sseq = t->area->spacedata.first;
-
+  if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) {
+    return;
+  }
   createTransCursor_2D_impl(t, sseq->cursor);
 }
 
diff --git a/source/blender/editors/transform/transform_convert_sequencer_image.c b/source/blender/editors/transform/transform_convert_sequencer_image.c
index c0dbd5404a4..e8af1680a41 100644
--- a/source/blender/editors/transform/transform_convert_sequencer_image.c
+++ b/source/blender/editors/transform/transform_convert_sequencer_image.c
@@ -123,6 +123,13 @@ void createTransSeqImageData(TransInfo *t)
     return;
   }
 
+  {
+    const SpaceSeq *sseq = t->area->spacedata.first;
+    if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) {
+      return;
+    }
+  }
+
   ListBase *seqbase = SEQ_active_seqbase_get(ed);
   SeqCollection *strips = SEQ_query_rendered_strips(seqbase, t->scene->r.cfra, 0);
   SEQ_filter_selected_strips(strips);
diff --git a/source/blender/editors/transform/transform_gizmo_2d.c b/source/blender/editors/transform/transform_gizmo_2d.c
index 84f7900e31c..7a23a4a92ce 100644
--- a/source/blender/editors/transform/transform_gizmo_2d.c
+++ b/source/blender/editors/transform/transform_gizmo_2d.c
@@ -96,6 +96,9 @@ static bool gizmo2d_generic_poll(const bContext *C, wmGizmoGroupType *gzgt)
       if (sseq->gizmo_flag & (SEQ_GIZMO_HIDE | SEQ_GIZMO_HIDE_TOOL)) {
         return false;
       }
+      if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) {
+        return false;
+      }
       Scene *scene = CTX_data_scene(C);
       Editing *ed = SEQ_editing_get(scene);
       if (ed == NULL) {



More information about the Bf-blender-cvs mailing list