diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-12-15 11:54:13 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-12-15 11:54:13 +0400 |
commit | 9e4d9e066ade129c191c8cd6efe7b417f578abce (patch) | |
tree | f167bd04be0741a51de77f90eda92dfbffae99f6 /source/blender/editors/curve/curve_ops.c | |
parent | 27a56719a81867942a344f53aacc3e6170f5ba54 (diff) |
Fix #29577: repeat curve duplication not working in 2.60(as well as 2.61rc1)
Issue was caused by direct call of transforn operator from extrude and duplicate,
made them macro of duplicate/exturde and transform, so now repeating works nicely.
Diffstat (limited to 'source/blender/editors/curve/curve_ops.c')
-rw-r--r-- | source/blender/editors/curve/curve_ops.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/source/blender/editors/curve/curve_ops.c b/source/blender/editors/curve/curve_ops.c index 95f3bb55ba5..8df54670bd4 100644 --- a/source/blender/editors/curve/curve_ops.c +++ b/source/blender/editors/curve/curve_ops.c @@ -137,6 +137,27 @@ void ED_operatortypes_curve(void) WM_operatortype_append(CURVE_OT_cyclic_toggle); } +void ED_operatormacros_curve(void) +{ + wmOperatorType *ot; + wmOperatorTypeMacro *otmacro; + + ot= WM_operatortype_append_macro("CURVE_OT_duplicate_move", "Add Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER); + ot->description = "Duplicate curve and move"; + WM_operatortype_macro_define(ot, "CURVE_OT_duplicate"); + otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); + RNA_enum_set(otmacro->ptr, "proportional", 0); + RNA_boolean_set(otmacro->ptr, "mirror", 0); + + ot= WM_operatortype_append_macro("CURVE_OT_extrude_move", "Extrude Curve and Move", OPTYPE_UNDO|OPTYPE_REGISTER); + ot->description = "Extrude curve and move result"; + otmacro= WM_operatortype_macro_define(ot, "CURVE_OT_extrude"); + RNA_enum_set(otmacro->ptr, "type", 1); + otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); + RNA_enum_set(otmacro->ptr, "proportional", 0); + RNA_boolean_set(otmacro->ptr, "mirror", 0); +} + void ED_keymap_curve(wmKeyConfig *keyconf) { wmKeyMap *keymap; @@ -214,8 +235,8 @@ void ED_keymap_curve(wmKeyConfig *keyconf) RNA_boolean_set(WM_keymap_add_item(keymap, "CURVE_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "deselect", 1); WM_keymap_add_item(keymap, "CURVE_OT_separate", PKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "CURVE_OT_extrude", EKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "CURVE_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_item(keymap, "CURVE_OT_extrude_move", EKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "CURVE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "CURVE_OT_make_segment", FKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "CURVE_OT_cyclic_toggle", CKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "CURVE_OT_delete", XKEY, KM_PRESS, 0, 0); |