From 452f7c38687527d3283395fb6d716cb63a2d8f60 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 26 Mar 2012 04:23:18 +0000 Subject: setting the active texture layer from python would get the UV layer out of sync. (entering editmode would show the wrong UV layer) --- source/blender/makesrna/intern/rna_mesh_utils.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'source/blender/makesrna/intern/rna_mesh_utils.h') diff --git a/source/blender/makesrna/intern/rna_mesh_utils.h b/source/blender/makesrna/intern/rna_mesh_utils.h index b00271f0e16..f262e717eef 100644 --- a/source/blender/makesrna/intern/rna_mesh_utils.h +++ b/source/blender/makesrna/intern/rna_mesh_utils.h @@ -99,9 +99,16 @@ int a; \ if (data) { \ CustomDataLayer *layer; \ - for (layer = data->layers, a = 0; atotlayer; layer++, a++) { \ + int layer_index = CustomData_get_layer_index(data, layer_type); \ + for (layer = data->layers, a = 0; layer_index + a < data->totlayer; layer++, a++) { \ if (value.data == layer) { \ - CustomData_set_layer_##active_type##_index(data, layer_type, a); \ + CustomData_set_layer_##active_type(data, layer_type, a); \ + \ + /* keep loops in sync */ \ + if (layer_type == CD_MTEXPOLY) { \ + CustomData *ldata = rna_mesh_ldata_helper(me); \ + CustomData_set_layer_##active_type(ldata, CD_MLOOPUV, a); \ + } \ mesh_update_customdata_pointers(me, TRUE); \ return; \ } \ @@ -126,6 +133,11 @@ CustomData *data = rna_mesh_##customdata_type(ptr); \ if (data) { \ CustomData_set_layer_##active_type(data, layer_type, value); \ + /* keep loops in sync */ \ + if (layer_type == CD_MTEXPOLY) { \ + CustomData *ldata = rna_mesh_ldata_helper(me); \ + CustomData_set_layer_##active_type(ldata, CD_MLOOPUV, value); \ + } \ mesh_update_customdata_pointers(me, TRUE); \ } \ } -- cgit v1.2.3