diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-11-04 02:49:56 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-11-04 02:49:56 +0300 |
commit | e32a81cba293db363e9106e8a6960053edd309ed (patch) | |
tree | ed1c57f6a9950c965d43c4b293420d8c2ad449c7 /source | |
parent | dba1904f657ab9b90aaea3ceed6dad97ec4ad951 (diff) |
workaround/fix [#24451] Motion path not automatic recalculating + locking obj moving
Comment from source...
/* re-calculating the frame positions means we loose our original transform if its not auto-keyed [#24451]
* this hack re-applies it, which is annoying, only alternatives are...
* - dont recalc paths.
* - have an object_handle_update() which gives is the new transform without touching the objects.
* - only recalc paths on auto-keying.
* - ED_objects_recalculate_paths could backup/restore transforms.
* - re-apply the transform which is simplest in this case. (2 lines below)
*/
Martin, if you think this workaround is unacceptable, then automatic recalculating of paths after transform should probably be disabled since it looses data on non transform un-keyed values.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 29496d2aa75..edae59fc00c 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -5085,6 +5085,17 @@ void special_aftertrans_update(bContext *C, TransInfo *t) if (C && recalcObPaths) { //ED_objects_clear_paths(C); // XXX for now, don't need to clear ED_objects_recalculate_paths(C, t->scene); + + /* recalculating the frame positions means we loose our original transform if its not auto-keyed [#24451] + * this hack re-applies it, which is annoying, only alternatives are... + * - dont recalc paths. + * - have an object_handle_update() which gives is the new transform without touching the objects. + * - only recalc paths on auto-keying. + * - ED_objects_recalculate_paths could backup/restore transforms. + * - re-apply the transform which is simplest in this case. (2 lines below) + */ + t->redraw |= TREDRAW_HARD; + transformApply(C, t); } } |