Durian Bugreport - Animation channel visiblity (upwards) flushing
When the visiblity of a F-Curve in an expanded group was enabled using VKEY, the visibility of all groups above the expanded groups were also turned on.
This commit is contained in:
@@ -437,18 +437,29 @@ void ANIM_flush_setting_anim_channels (bAnimContext *ac, ListBase *anim_data, bA
|
||||
|
||||
/* if the level is 'less than' (i.e. more important) the level we're matching
|
||||
* but also 'less than' the level just tried (i.e. only the 1st group above grouped F-Curves,
|
||||
* when toggling visibility of F-Curves, gets flushed), flush the new status...
|
||||
* when toggling visibility of F-Curves, gets flushed, which should happen if we don't let prevLevel
|
||||
* get updated below once the first 1st group is found)...
|
||||
*/
|
||||
if (level < prevLevel)
|
||||
if (level < prevLevel) {
|
||||
/* flush the new status... */
|
||||
ANIM_channel_setting_set(ac, ale, setting, on);
|
||||
/* however, if the level is 'greater than' (i.e. less important than the previous channel,
|
||||
* stop searching, since we've already reached the bottom of another hierarchy
|
||||
*/
|
||||
else if (level > matchLevel)
|
||||
break;
|
||||
|
||||
/* store this level as the 'old' level now */
|
||||
prevLevel= level;
|
||||
|
||||
/* store this level as the 'old' level now */
|
||||
prevLevel= level;
|
||||
}
|
||||
/* if the level is 'greater than' (i.e. less important) than the previous level... */
|
||||
else if (level > prevLevel) {
|
||||
/* if previous level was a base-level (i.e. 0 offset / root of one hierarchy),
|
||||
* stop here
|
||||
*/
|
||||
if (prevLevel == 0)
|
||||
break;
|
||||
/* otherwise, this level weaves into another sibling hierarchy to the previous one just
|
||||
* finished, so skip until we get to the parent of this level
|
||||
*/
|
||||
else
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user