Commit: 54c18d4849ccf1a97ba85ed30416d3639f4909ea
Author: Antony Riakiotakis
Date:   Mon Apr 13 23:58:50 2015 +0200
Branches: master
https://developer.blender.org/rB54c18d4849ccf1a97ba85ed30416d3639f4909ea

Fix T44362 no easy way to repeatedly duplicate keyframes in action
editors.

Reporter used a hacky work-around by placing cursor at end of keyframe
range and doing ctrl-C ctrl-V repeatedly. This was working on 2.73 but
not anymore since the old selection is not kept.

Much better is to have duplication operator be repeatable. This commit
takes care of that.

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

M       source/blender/editors/space_action/action_edit.c
M       source/blender/editors/space_graph/graph_edit.c
M       source/blender/editors/transform/transform.c

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

diff --git a/source/blender/editors/space_action/action_edit.c 
b/source/blender/editors/space_action/action_edit.c
index d83137d..debe3cb 100644
--- a/source/blender/editors/space_action/action_edit.c
+++ b/source/blender/editors/space_action/action_edit.c
@@ -792,13 +792,6 @@ static int actkeys_duplicate_exec(bContext *C, wmOperator 
*UNUSED(op))
        
        return OPERATOR_FINISHED;
 }
-
-static int actkeys_duplicate_invoke(bContext *C, wmOperator *op, const wmEvent 
*UNUSED(event))
-{
-       actkeys_duplicate_exec(C, op);
-       
-       return OPERATOR_FINISHED;
-}
  
 void ACTION_OT_duplicate(wmOperatorType *ot)
 {
@@ -808,7 +801,6 @@ void ACTION_OT_duplicate(wmOperatorType *ot)
        ot->description = "Make a copy of all selected keyframes";
        
        /* api callbacks */
-       ot->invoke = actkeys_duplicate_invoke;
        ot->exec = actkeys_duplicate_exec;
        ot->poll = ED_operator_action_active;
        
diff --git a/source/blender/editors/space_graph/graph_edit.c 
b/source/blender/editors/space_graph/graph_edit.c
index 80503a7..d450335 100644
--- a/source/blender/editors/space_graph/graph_edit.c
+++ b/source/blender/editors/space_graph/graph_edit.c
@@ -883,13 +883,6 @@ static int graphkeys_duplicate_exec(bContext *C, 
wmOperator *UNUSED(op))
        return OPERATOR_FINISHED;
 }
 
-static int graphkeys_duplicate_invoke(bContext *C, wmOperator *op, const 
wmEvent *UNUSED(event))
-{
-       graphkeys_duplicate_exec(C, op);
-
-       return OPERATOR_FINISHED;
-}
- 
 void GRAPH_OT_duplicate(wmOperatorType *ot)
 {
        /* identifiers */
@@ -898,7 +891,6 @@ void GRAPH_OT_duplicate(wmOperatorType *ot)
        ot->description = "Make a copy of all selected keyframes";
        
        /* api callbacks */
-       ot->invoke = graphkeys_duplicate_invoke;
        ot->exec = graphkeys_duplicate_exec;
        ot->poll = graphop_editable_keyframes_poll;
        
diff --git a/source/blender/editors/transform/transform.c 
b/source/blender/editors/transform/transform.c
index be33dfd..f8e529a 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -7591,7 +7591,7 @@ static void headerTimeTranslate(TransInfo *t, char 
str[MAX_INFO_LEN])
        }
 }
 
-static void applyTimeTranslateValue(TransInfo *t, float UNUSED(sval))
+static void applyTimeTranslateValue(TransInfo *t)
 {
        TransData *td = t->data;
        TransData2D *td2d = t->data2d;
@@ -7649,15 +7649,17 @@ static void applyTimeTranslateValue(TransInfo *t, float 
UNUSED(sval))
 static void applyTimeTranslate(TransInfo *t, const int mval[2])
 {
        View2D *v2d = (View2D *)t->view;
-       float cval[2], sval[2];
        char str[MAX_INFO_LEN];
 
        /* calculate translation amount from mouse movement - in 'time-grid 
space' */
-       UI_view2d_region_to_view(v2d, mval[0], mval[0], &cval[0], &cval[1]);
-       UI_view2d_region_to_view(v2d, t->imval[0], t->imval[0], &sval[0], 
&sval[1]);
+       if (t->flag & T_MODAL) {
+               float cval[2], sval[2];
+               UI_view2d_region_to_view(v2d, mval[0], mval[0], &cval[0], 
&cval[1]);
+               UI_view2d_region_to_view(v2d, t->imval[0], t->imval[0], 
&sval[0], &sval[1]);
 
-       /* we only need to calculate effect for time (applyTimeTranslate only 
needs that) */
-       t->values[0] = cval[0] - sval[0];
+               /* we only need to calculate effect for time 
(applyTimeTranslate only needs that) */
+               t->values[0] = cval[0] - sval[0];
+       }
 
        /* handle numeric-input stuff */
        t->vec[0] = t->values[0];
@@ -7665,7 +7667,7 @@ static void applyTimeTranslate(TransInfo *t, const int 
mval[2])
        t->values[0] = t->vec[0];
        headerTimeTranslate(t, str);
 
-       applyTimeTranslateValue(t, sval[0]);
+       applyTimeTranslateValue(t);
 
        recalcData(t);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to