diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-06-20 18:20:03 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-06-20 18:20:03 +0400 |
commit | aa30e2027222c2fd0f3d616cf1689bb4f3d98495 (patch) | |
tree | b4bd0f9cc11984ad6dae31f9e7ef7b79a4abdc3b /source/blender/editors/space_sequencer/sequencer_ops.c | |
parent | 72f7ab441dafffb8b7033f1fe109af00e2d62eb5 (diff) |
Fix #31852: Sequencer duplicate cant move strips on Y axis in a meta
Issue was caused by some stuff happenign in wm_operator_finish() which uses
to somehow restore changes made by transformation invoke function.
Solved by not calling translation operator directly from duplication operator
(which is in fact really tricky) and use macros instead. This macros calls
duplication operator which simply duplicates strip, and then calls translation
operator.
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_ops.c')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_ops.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c index 79ecd9f7481..685358393cf 100644 --- a/source/blender/editors/space_sequencer/sequencer_ops.c +++ b/source/blender/editors/space_sequencer/sequencer_ops.c @@ -167,7 +167,7 @@ void sequencer_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SEQUENCER_OT_offset_clear", OKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "SEQUENCER_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_item(keymap, "SEQUENCER_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", XKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", DELKEY, KM_PRESS, 0, 0); @@ -321,3 +321,14 @@ void sequencer_keymap(wmKeyConfig *keyconf) #endif } +void ED_operatormacros_sequencer(void) +{ + wmOperatorType *ot; + wmOperatorTypeMacro *otmacro; + + ot = WM_operatortype_append_macro("SEQUENCER_OT_duplicate_move", "Duplicate Strips", + "Duplicate selected strips and move them", OPTYPE_UNDO | OPTYPE_REGISTER); + + WM_operatortype_macro_define(ot, "SEQUENCER_OT_duplicate"); + WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); +} |