diff options
-rw-r--r-- | release/scripts/startup/bl_ui/properties_texture.py | 6 | ||||
-rw-r--r-- | source/blender/editors/space_buttons/buttons_context.c | 9 |
2 files changed, 9 insertions, 6 deletions
diff --git a/release/scripts/startup/bl_ui/properties_texture.py b/release/scripts/startup/bl_ui/properties_texture.py index f0265f8db67..292e43a01a6 100644 --- a/release/scripts/startup/bl_ui/properties_texture.py +++ b/release/scripts/startup/bl_ui/properties_texture.py @@ -88,15 +88,15 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel, bpy.types.Panel): @classmethod def poll(cls, context): engine = context.scene.render.engine - if not hasattr(context, "texture_slot"): + if not (hasattr(context, "texture_slot") or hasattr(context, "texture_node")): return False return ((context.material or context.world or context.lamp or context.brush or context.texture or context.particle_system or isinstance(context.space_data.pin_id, bpy.types.ParticleSettings)) and (engine in cls.COMPAT_ENGINES)) def draw(self, context): layout = self.layout - slot = context.texture_slot - node = context.texture_node + slot = getattr(context, "texture_slot", None) + node = getattr(context, "texture_node", None) space = context.space_data tex = context.texture idblock = context_tex_datablock(context) diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index f91e830d52e..8e1a4b2d16c 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -218,7 +218,7 @@ static int buttons_context_path_modifier(ButsContextPath *path) return 0; } -static int buttons_context_path_material(ButsContextPath *path) +static int buttons_context_path_material(ButsContextPath *path, int for_texture) { Object *ob; PointerRNA *ptr= &path->ptr[path->len-1]; @@ -236,6 +236,9 @@ static int buttons_context_path_material(ButsContextPath *path) ma= give_current_material(ob, ob->actcol); RNA_id_pointer_create(&ma->id, &path->ptr[path->len]); path->len++; + + if(for_texture && give_current_material_texture_node(ma)) + return 1; ma= give_node_material(ma); if(ma) { @@ -432,7 +435,7 @@ static int buttons_context_path_texture(ButsContextPath *path) } } /* try material */ - if(buttons_context_path_material(path)) { + if(buttons_context_path_material(path, 1)) { ma= path->ptr[path->len-1].data; if(ma) { @@ -524,7 +527,7 @@ static int buttons_context_path(const bContext *C, ButsContextPath *path, int ma found= buttons_context_path_particle(path); break; case BCONTEXT_MATERIAL: - found= buttons_context_path_material(path); + found= buttons_context_path_material(path, 0); break; case BCONTEXT_TEXTURE: found= buttons_context_path_texture(path); |