diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-03-26 08:23:18 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-03-26 08:23:18 +0400 |
commit | 452f7c38687527d3283395fb6d716cb63a2d8f60 (patch) | |
tree | 80c52c8918946ca6205ae3bf4be630878666bb52 /source/blender/makesrna/intern/rna_mesh_utils.h | |
parent | 48f0444760ea33c67d607b4f1e1dadd66e1eea76 (diff) |
setting the active texture layer from python would get the UV layer out of sync. (entering editmode would show the wrong UV layer)
Diffstat (limited to 'source/blender/makesrna/intern/rna_mesh_utils.h')
-rw-r--r-- | source/blender/makesrna/intern/rna_mesh_utils.h | 16 |
1 files changed, 14 insertions, 2 deletions
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; a<data->totlayer; 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); \ } \ } |