diff options
author | Joshua Leung <aligorith@gmail.com> | 2012-01-03 06:11:11 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2012-01-03 06:11:11 +0400 |
commit | 8983d68fd8fbda9d0500dd60af259b87ec28b4c3 (patch) | |
tree | 6fcf43a4337875aeb00a64d62de1cd59158cbc35 /source/blender/editors/animation/anim_ipo_utils.c | |
parent | 84437bb5e9342e67f448e26adb0c4b0811f3ef5c (diff) |
Bugfix [#29629] UV animation stops working forever if Edit mode entered
Thanks Sergey for the patch!
This bug, and many like it would arise because at some point a F-Curve would get
detected as being unable to be resolved (when trying to display its name in an
Animation Editor), so gets tagged as being "disabled". It was assumed that such
channels usually belonged to deleted data or stuff that wouldn't be able to be
resolved again for a long time. However, in cases like UV settings, they may
only be unavailable temporarily.
As a compromise, this patch clears this disabled flag if a channel is found to
be now working when (in the process of finding out its name when redrawing an
Animation Editor) it can be resolved, in the same place where the disabling was
taking place. This doesn't work fullproof in tests I've done, but should be
nicer than before.
Diffstat (limited to 'source/blender/editors/animation/anim_ipo_utils.c')
-rw-r--r-- | source/blender/editors/animation/anim_ipo_utils.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/editors/animation/anim_ipo_utils.c b/source/blender/editors/animation/anim_ipo_utils.c index 8e36e02bbb4..8c4e0065a19 100644 --- a/source/blender/editors/animation/anim_ipo_utils.c +++ b/source/blender/editors/animation/anim_ipo_utils.c @@ -161,6 +161,11 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu) * use the struct's icon if it is set */ icon= RNA_struct_ui_icon(ptr.type); + + /* valid path - remove the invalid tag since we now know how to use it saving + * users manual effort to reenable using "Revive Disabled FCurves" [#29629] + */ + fcu->flag &= ~FCURVE_DISABLED; } else { /* invalid path */ |