diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2013-04-28 19:20:52 +0400 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2013-04-28 19:20:52 +0400 |
commit | 428debd9c8af81ed5870c70466d46a60646f49e3 (patch) | |
tree | e0c5ed8607273a33293764eb203d02e559fbfba5 /source/blender/editors/space_buttons | |
parent | 85a4938c101ab5d50b2313ffeddf8af198e40074 (diff) |
Fix for "new" Cycles handling of textures, UI code assumed all texture users use "texture" as prop name, but at least WeightVG modifiers do not.
Fixed by adding a "texture_user_property" member to spacebuts' context, and using it to get the prop identifier in ui script.
Thanks to Brecht for its advice!
Diffstat (limited to 'source/blender/editors/space_buttons')
-rw-r--r-- | source/blender/editors/space_buttons/buttons_context.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index 564f0589b58..7b93eb2ff70 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -685,7 +685,7 @@ void buttons_context_compute(const bContext *C, SpaceButs *sbuts) const char *buttons_context_dir[] = { "texture_slot", "world", "object", "mesh", "armature", "lattice", "curve", "meta_ball", "lamp", "speaker", "camera", "material", "material_slot", - "texture", "texture_user", "bone", "edit_bone", + "texture", "texture_user", "texture_user_property", "bone", "edit_bone", "pose_bone", "particle_system", "particle_system_editable", "particle_settings", "cloth", "soft_body", "fluid", "smoke", "collision", "brush", "dynamic_paint", NULL }; @@ -795,6 +795,19 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r return 1; } + else if (CTX_data_equals(member, "texture_user_property")) { + ButsContextTexture *ct = sbuts->texuser; + + if (!ct) + return -1; /* old shading system (found but not available) */ + + if (ct->user && ct->user->ptr.data) { + ButsTextureUser *user = ct->user; + CTX_data_pointer_set(result, NULL, &RNA_Property, user->prop); + } + + return 1; + } else if (CTX_data_equals(member, "texture_node")) { ButsContextTexture *ct = sbuts->texuser; |