From d219312d44d7153dfe74eeef1dd0f8cbbc1340f3 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 9 Mar 2014 19:23:32 +1300 Subject: Fix T39018: Duplicate entries for material/shader in AnimEditors In many BI shader setups, the material which owns the nodetree is often itself included as a node in that nodetree (i.e. to provide the base colour for that mesh). This would often result in the material (and its subtree) getting included in the dopesheet results twice. --- source/blender/editors/animation/anim_filter.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'source/blender/editors/animation/anim_filter.c') diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 9d54d938cc7..a4a1e951477 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -1796,9 +1796,14 @@ static size_t animdata_filter_ds_materials(bAnimContext *ac, ListBase *anim_data Material *base = give_current_material(ob, a); Material *ma = give_node_material(base); - /* add channels from the nested material if it exists */ - if (ma) + /* add channels from the nested material if it exists + * - skip if the same material is referenced in its node tree + * (which is common for BI materials) as that results in + * confusing duplicates + */ + if ((ma) && (ma != base)) { items += animdata_filter_ds_material(ac, anim_data, ads, ma, filter_mode); + } } } -- cgit v1.2.3