[Bf-blender-cvs] [1e972ec1fb0] temp-vse-preview-transform: Fix linked time not working

Richard Antalik noreply at git.blender.org
Mon Aug 30 00:01:28 CEST 2021


Commit: 1e972ec1fb0f1cb1a37073dddefbd3875616a120
Author: Richard Antalik
Date:   Fri Aug 27 10:57:35 2021 +0200
Branches: temp-vse-preview-transform
https://developer.blender.org/rB1e972ec1fb0f1cb1a37073dddefbd3875616a120

Fix linked time not working

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

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

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

diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c
index fef77003988..2b09a68c467 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -507,6 +507,7 @@ void SEQUENCER_OT_select_inverse(struct wmOperatorType *ot)
 static void sequencer_select_do_updates(bContext *C, Scene *scene, Sequence *seq)
 {
   Editing *ed = SEQ_editing_get(scene, false);
+
   if (seq) {
     SEQ_select_active_set(scene, seq);
 
@@ -527,7 +528,10 @@ static void sequencer_select_do_updates(bContext *C, Scene *scene, Sequence *seq
   WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene);
 }
 
-static void sequencer_select_side_of_frame(bContext *C, View2D *v2d, int mval[2], Scene *scene)
+static void sequencer_select_side_of_frame(const bContext *C,
+                                           const View2D *v2d,
+                                           const int mval[2],
+                                           Scene *scene)
 {
   Editing *ed = SEQ_editing_get(scene, false);
 
@@ -560,7 +564,7 @@ static void sequencer_select_side_of_frame(bContext *C, View2D *v2d, int mval[2]
 }
 
 static void sequencer_select_linked_handle(
-    bContext *C, View2D *v2d, Sequence *seq, int handle_clicked, Scene *scene)
+    const bContext *C, const View2D *v2d, Sequence *seq, const int handle_clicked, Scene *scene)
 {
   Editing *ed = SEQ_editing_get(scene, false);
   if (!ELEM(handle_clicked, SEQ_SIDE_LEFT, SEQ_SIDE_RIGHT)) {
@@ -630,6 +634,37 @@ static bool element_already_selected(const Sequence *seq, const int handle_click
   return element_already_selected;
 }
 
+static int sequencer_select(const Editing *ed,
+                            Sequence *seq,
+                            const int handle_clicked,
+                            const bool extend)
+{
+  /* Deselect strip. */
+  if (extend && (seq->flag & SELECT) && ed->act_seq == seq) {
+    switch (handle_clicked) {
+      case SEQ_SIDE_NONE:
+        seq->flag &= ~SEQ_ALLSEL;
+        break;
+      case SEQ_SIDE_LEFT:
+        seq->flag ^= SEQ_LEFTSEL;
+        break;
+      case SEQ_SIDE_RIGHT:
+        seq->flag ^= SEQ_RIGHTSEL;
+        break;
+    }
+    return OPERATOR_FINISHED;
+  }
+  /* Select strip. */
+  seq->flag |= SELECT;
+  if (handle_clicked == SEQ_SIDE_LEFT) {
+    seq->flag |= SEQ_LEFTSEL;
+  }
+  if (handle_clicked == SEQ_SIDE_RIGHT) {
+    seq->flag |= SEQ_RIGHTSEL;
+  }
+  return OPERATOR_FINISHED;
+}
+
 static int sequencer_select_exec(bContext *C, wmOperator *op)
 {
   View2D *v2d = UI_view2d_fromcontext(C);
@@ -654,6 +689,7 @@ static int sequencer_select_exec(bContext *C, wmOperator *op)
     if (!extend) {
       ED_sequencer_deselect_all(scene);
     }
+    sequencer_select(ed, seq, handle_clicked, extend);
     select_linked_time(ed->seqbasep, seq);
     sequencer_select_do_updates(C, scene, seq);
     return OPERATOR_FINISHED;
@@ -703,31 +739,8 @@ static int sequencer_select_exec(bContext *C, wmOperator *op)
     return ret_value;
   }
 
-  /* Deselect strip. */
-  if (extend && (seq->flag & SELECT) && ed->act_seq == seq) {
-    switch (handle_clicked) {
-      case SEQ_SIDE_NONE:
-        seq->flag &= ~SEQ_ALLSEL;
-        break;
-      case SEQ_SIDE_LEFT:
-        seq->flag ^= SEQ_LEFTSEL;
-        break;
-      case SEQ_SIDE_RIGHT:
-        seq->flag ^= SEQ_RIGHTSEL;
-        break;
-    }
-    ret_value = OPERATOR_FINISHED;
-  }
-  else { /* Select strip. */
-    seq->flag |= SELECT;
-    if (handle_clicked == SEQ_SIDE_LEFT) {
-      seq->flag |= SEQ_LEFTSEL;
-    }
-    if (handle_clicked == SEQ_SIDE_RIGHT) {
-      seq->flag |= SEQ_RIGHTSEL;
-    }
-    ret_value = OPERATOR_FINISHED;
-  }
+  /* Do actual selection. */
+  ret_value = sequencer_select(ed, seq, handle_clicked, extend);
 
   BLI_assert((ret_value & OPERATOR_CANCELLED) == 0);
   sequencer_select_do_updates(C, scene, seq);



More information about the Bf-blender-cvs mailing list