diff --git a/source/blender/editors/interface/templates/interface_template_node_inputs.cc b/source/blender/editors/interface/templates/interface_template_node_inputs.cc index 5e450b4980e..6d7f052e2d9 100644 --- a/source/blender/editors/interface/templates/interface_template_node_inputs.cc +++ b/source/blender/editors/interface/templates/interface_template_node_inputs.cc @@ -159,8 +159,20 @@ void uiTemplateNodeInputs(uiLayout *layout, bContext *C, PointerRNA *ptr) blender::ui::nodes::draw_node_inputs_recursive(C, layout, node, ptr, *panel_decl); } else if (const auto *socket_decl = dynamic_cast(item_decl)) { - if (socket_decl->in_out == SOCK_IN) { - blender::ui::nodes::draw_node_input(C, layout, ptr, node.socket_by_decl(*socket_decl)); + bNodeSocket &socket = node.socket_by_decl(*socket_decl); + if (socket_decl->custom_draw_fn) { + CustomSocketDrawParams params{ + *C, + *layout, + tree, + node, + socket, + *ptr, + RNA_pointer_create_discrete(ptr->owner_id, &RNA_NodeSocket, &socket)}; + (*socket_decl->custom_draw_fn)(params); + } + else if (socket_decl->in_out == SOCK_IN) { + blender::ui::nodes::draw_node_input(C, layout, ptr, socket); } } else if (const auto *layout_decl = dynamic_cast(item_decl)) {