[Bf-blender-cvs] [b626edd751d] master: fix: RNA property not set for Graph editor breakdown op

Christoph Lendenfeld noreply at git.blender.org
Wed Feb 16 21:55:48 CET 2022


Commit: b626edd751d64b269da12ef8e774ced2836c3c9e
Author: Christoph Lendenfeld
Date:   Wed Feb 16 21:55:42 2022 +0100
Branches: master
https://developer.blender.org/rBb626edd751d64b269da12ef8e774ced2836c3c9e

fix: RNA property not set for Graph editor breakdown op

After running the breakdown operator for the graph editor,
the factor property in the redo panel didn't reflect the value you chose

to mitigate that issue down the line there is a
new helper function to get the factor value, and
store it at the same time

Reviewed by: Sybren A. Stüvel
Differential Revision: https://developer.blender.org/D14105
Ref: D14105

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

M	release/scripts/addons
M	source/blender/editors/space_graph/graph_slider_ops.c

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

diff --git a/release/scripts/addons b/release/scripts/addons
index e1d44bf3750..089aef61deb 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit e1d44bf37501eb19a057777bd0b0ba4484773531
+Subproject commit 089aef61debbece2baff6516e33fc7491629b1d0
diff --git a/source/blender/editors/space_graph/graph_slider_ops.c b/source/blender/editors/space_graph/graph_slider_ops.c
index 1006ba4b3f4..2aebc6f2eeb 100644
--- a/source/blender/editors/space_graph/graph_slider_ops.c
+++ b/source/blender/editors/space_graph/graph_slider_ops.c
@@ -163,6 +163,16 @@ static void reset_bezts(tGraphSliderOp *gso)
   ANIM_animdata_freelist(&anim_data);
 }
 
+/* Get factor value and store it in RNA property. Custom data of wmOperator needs to contain
+ * tGraphSliderOp. */
+const float slider_factor_get_and_remember(wmOperator *op)
+{
+  tGraphSliderOp *gso = op->customdata;
+  const float factor = ED_slider_factor_get(gso->slider);
+  RNA_property_float_set(op->ptr, gso->factor_prop, factor);
+  return factor;
+}
+
 /** \} */
 
 /* -------------------------------------------------------------------- */
@@ -378,8 +388,7 @@ static void decimate_modal_update(bContext *C, wmOperator *op)
   reset_bezts(gso);
 
   /* Apply... */
-  float factor = ED_slider_factor_get(gso->slider);
-  RNA_property_float_set(op->ptr, gso->factor_prop, factor);
+  const float factor = slider_factor_get_and_remember(op);
   /* We don't want to limit the decimation to a certain error margin. */
   const float error_sq_max = FLT_MAX;
   decimate_graph_keys(&gso->ac, factor, error_sq_max);
@@ -598,8 +607,7 @@ static void blend_to_neighbor_modal_update(bContext *C, wmOperator *op)
   /* Reset keyframe data to the state at invoke. */
   reset_bezts(gso);
 
-  const float factor = ED_slider_factor_get(gso->slider);
-  RNA_property_float_set(op->ptr, gso->factor_prop, factor);
+  const float factor = slider_factor_get_and_remember(op);
   blend_to_neighbor_graph_keys(&gso->ac, factor);
 
   WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL);
@@ -725,7 +733,8 @@ static void breakdown_modal_update(bContext *C, wmOperator *op)
 
   /* Reset keyframe data to the state at invoke. */
   reset_bezts(gso);
-  breakdown_graph_keys(&gso->ac, ED_slider_factor_get(gso->slider));
+  const float factor = slider_factor_get_and_remember(op);
+  breakdown_graph_keys(&gso->ac, factor);
   WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL);
 }
 
@@ -739,6 +748,7 @@ static int breakdown_invoke(bContext *C, wmOperator *op, const wmEvent *event)
 
   tGraphSliderOp *gso = op->customdata;
   gso->modal_update = breakdown_modal_update;
+  gso->factor_prop = RNA_struct_find_property(op->ptr, "factor");
   breakdown_draw_status_header(C, gso);
 
   return invoke_result;



More information about the Bf-blender-cvs mailing list