From 847b21ee08e5a30a2fe35ede4c5b3a73af404af7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 3 Jan 2019 12:15:03 +1100 Subject: Fix T60014: material link pref ignored The PreferencesEdit.material_link only worked for adding slots, adding an initial new material didn't respect the preference. --- source/blender/editors/render/render_shading.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'source/blender/editors/render') diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 5b198774b71..8aa345dfa10 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -483,6 +483,15 @@ static int new_material_exec(bContext *C, wmOperator *UNUSED(op)) UI_context_active_but_prop_get_templateID(C, &ptr, &prop); if (prop) { + if (RNA_struct_is_a(ptr.type, &RNA_Object)) { + /* Add slot follows user-preferences for creating new slots, + * RNA pointer assignment doesn't, see: T60014. */ + Object *ob = ptr.data; + if (give_current_material_p(ob, ob->actcol) == NULL) { + BKE_object_material_slot_add(bmain, ob); + } + } + /* when creating new ID blocks, use is already 1, but RNA * pointer use also increases user, so this compensates it */ id_us_min(&ma->id); -- cgit v1.2.3