diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-01-03 04:15:03 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-01-03 04:20:08 +0300 |
commit | 847b21ee08e5a30a2fe35ede4c5b3a73af404af7 (patch) | |
tree | 9fb9ecf0ca14d0d25485ad090012efae81158a27 /source/blender/blenkernel/intern/material.c | |
parent | f7e9642da9c9a56a435c2a7f1e506245700a72b0 (diff) |
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.
Diffstat (limited to 'source/blender/blenkernel/intern/material.c')
-rw-r--r-- | source/blender/blenkernel/intern/material.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 5c8ac0a81ce..5e14a520bf6 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -543,9 +543,9 @@ void BKE_material_clear_id(Main *bmain, ID *id, bool update_data) } } -Material *give_current_material(Object *ob, short act) +Material **give_current_material_p(Object *ob, short act) { - Material ***matarar, *ma; + Material ***matarar, **ma_p; const short *totcolp; if (ob == NULL) return NULL; @@ -565,7 +565,7 @@ Material *give_current_material(Object *ob, short act) } if (ob->matbits && ob->matbits[act - 1]) { /* in object */ - ma = ob->mat[act - 1]; + ma_p = &ob->mat[act - 1]; } else { /* in data */ @@ -576,12 +576,21 @@ Material *give_current_material(Object *ob, short act) matarar = give_matarar(ob); - if (matarar && *matarar) ma = (*matarar)[act - 1]; - else ma = NULL; - + if (matarar && *matarar) { + ma_p = &(*matarar)[act - 1]; + } + else { + ma_p = NULL; + } } - return ma; + return ma_p; +} + +Material *give_current_material(Object *ob, short act) +{ + Material **ma_p = give_current_material_p(ob, act); + return ma_p ? *ma_p : NULL; } Material *give_node_material(Material *ma) |