Fix #26704: activating a texture node inside material nodes did not show that

texture in the texture properties.
This commit is contained in:
Brecht Van Lommel
2011-07-13 17:52:23 +00:00
parent 5e841e4b4a
commit 74536efa91
2 changed files with 9 additions and 6 deletions

View File

@@ -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)

View File

@@ -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);