diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-02-12 20:00:46 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-02-12 20:01:53 +0400 |
commit | f49e89fa378cde3bae9020985ed6e55724ae1ae1 (patch) | |
tree | b420b3164711d4f6fbb2abc6fa1366ca791b2e20 /source/blender/editors/transform | |
parent | 09e5373c0647db6144ceaf3f730a4c67c76dfc42 (diff) |
Fix T38525: missing update when running bpy.ops.transform.* from the console.
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 1 | ||||
-rw-r--r-- | source/blender/editors/transform/transform_generics.c | 33 |
2 files changed, 21 insertions, 13 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index e4bc3f8d45a..053a69faaaf 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -6887,6 +6887,7 @@ void createTransData(bContext *C, TransInfo *t) Scene *scene = t->scene; Object *ob = OBACT; + /* if tests must match recalcData for correct updates */ if (t->options & CTX_TEXTURE) { t->flag |= T_TEXTURE; createTransTexspace(t); diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 2f6756366e3..af4beff4bc9 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -689,8 +689,8 @@ static void recalcData_spaceclip(TransInfo *t) } } -/* helper for recalcData() - for 3d-view transforms */ -static void recalcData_view3d(TransInfo *t) +/* helper for recalcData() - for object transforms, typically in the 3D view */ +static void recalcData_objects(TransInfo *t) { Base *base = t->scene->basact; @@ -939,30 +939,37 @@ static void recalcData_sequencer(TransInfo *t) /* called for updating while transform acts, once per redraw */ void recalcData(TransInfo *t) { - if (t->spacetype == SPACE_NODE) { - flushTransNodes(t); + /* if tests must match createTransData for correct updates */ + if (t->options & CTX_TEXTURE) { + recalcData_objects(t); } - else if (t->spacetype == SPACE_SEQ) { - recalcData_sequencer(t); + else if (t->options & CTX_EDGE) { + recalcData_objects(t); + } + else if (t->spacetype == SPACE_IMAGE) { + recalcData_image(t); } else if (t->spacetype == SPACE_ACTION) { recalcData_actedit(t); } - else if (t->spacetype == SPACE_IPO) { - recalcData_graphedit(t); - } else if (t->spacetype == SPACE_NLA) { recalcData_nla(t); } - else if (t->spacetype == SPACE_IMAGE) { - recalcData_image(t); + else if (t->spacetype == SPACE_SEQ) { + recalcData_sequencer(t); } - else if (t->spacetype == SPACE_VIEW3D) { - recalcData_view3d(t); + else if (t->spacetype == SPACE_IPO) { + recalcData_graphedit(t); + } + else if (t->spacetype == SPACE_NODE) { + flushTransNodes(t); } else if (t->spacetype == SPACE_CLIP) { recalcData_spaceclip(t); } + else { + recalcData_objects(t); + } } void drawLine(TransInfo *t, const float center[3], const float dir[3], char axis, short options) |