Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-10-15 13:59:31 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-10-15 13:59:31 +0400
commit9613de6248b364e58abf01c36d9d1290ecc93dfe (patch)
tree736de7a803a7e1a9d7aa40295c45b66cedf056e5
parentf8317ed450e8e1649b4b23215417ad3e5b8d607c (diff)
make sure render layer names are unique when setting through rna.
-rw-r--r--source/blender/editors/interface/interface.c7
-rw-r--r--source/blender/makesrna/intern/rna_scene.c2
2 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index a62658349c1..299bec0db8a 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -1259,7 +1259,6 @@ void ui_get_but_vectorf(uiBut *but, float vec[3])
void ui_set_but_vectorf(uiBut *but, const float vec[3])
{
PropertyRNA *prop;
- int a, tot;
if(but->editvec) {
copy_v3_v3(but->editvec, vec);
@@ -1269,11 +1268,15 @@ void ui_set_but_vectorf(uiBut *but, const float vec[3])
prop= but->rnaprop;
if(RNA_property_type(prop) == PROP_FLOAT) {
+ int tot;
+ int a;
+
tot= RNA_property_array_length(&but->rnapoin, prop);
tot= MIN2(tot, 3);
- for(a=0; a<tot; a++)
+ for (a=0; a<tot; a++) {
RNA_property_float_set_index(&but->rnapoin, prop, a, vec[a]);
+ }
}
}
else if(but->pointype == CHA) {
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 0eaacc62f33..ccc8151ac7f 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -812,8 +812,8 @@ static void rna_SceneRenderLayer_name_set(PointerRNA *ptr, const char *value)
{
Scene *scene= (Scene*)ptr->id.data;
SceneRenderLayer *rl= (SceneRenderLayer*)ptr->data;
-
BLI_strncpy_utf8(rl->name, value, sizeof(rl->name));
+ BLI_uniquename(&scene->r.layers, rl, "RenderLayer", '.', offsetof(SceneRenderLayer, name), sizeof(rl->name));
if(scene->nodetree) {
bNode *node;