Fix #26704: activating a texture node inside material nodes did not show that
texture in the texture properties.
This commit is contained in:
@@ -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)
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user