From 7c0ea399a62e5097531c4de11e45709091d8d3e9 Mon Sep 17 00:00:00 2001 From: luboslenco Date: Wed, 1 Jul 2026 11:53:47 +0200 Subject: [PATCH] paint: fix material duplicate in base workflow --- paint/sources/util/util_clone.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/paint/sources/util/util_clone.c b/paint/sources/util/util_clone.c index 7ccfe0cd..29cb9388 100644 --- a/paint/sources/util/util_clone.c +++ b/paint/sources/util/util_clone.c @@ -100,11 +100,22 @@ ui_node_t *util_clone_canvas_node(ui_node_t *n) { r->x = n->x; r->y = n->y; r->color = n->color; - r->inputs = util_clone_canvas_sockets(n->inputs); - r->outputs = util_clone_canvas_sockets(n->outputs); - r->buttons = util_clone_canvas_buttons(n->buttons); - r->width = n->width; - r->flags = n->flags; + + u32 _length = 0; + if (n->inputs != NULL && n->inputs->length < 9 && string_equals(n->type, "OUTPUT_MATERIAL_PBR")) { + // Base workflow + _length = n->inputs->length; + n->inputs->length = 9; + } + r->inputs = util_clone_canvas_sockets(n->inputs); + if (_length != 0) { + n->inputs->length = _length; + } + + r->outputs = util_clone_canvas_sockets(n->outputs); + r->buttons = util_clone_canvas_buttons(n->buttons); + r->width = n->width; + r->flags = n->flags; return r; }