Fix #108336: Treat node sockets with muted links as linked #108375
|
@ -527,13 +527,8 @@ class NodeTreeMainUpdater {
|
|||
{
|
||||
tree.ensure_topology_cache();
|
||||
for (bNodeSocket *socket : tree.all_sockets()) {
|
||||
socket->flag &= ~SOCK_IS_LINKED;
|
||||
for (const bNodeLink *link : socket->directly_linked_links()) {
|
||||
if (!link->is_muted()) {
|
||||
socket->flag |= SOCK_IS_LINKED;
|
||||
break;
|
||||
}
|
||||
}
|
||||
const bool socket_is_linked = !socket->directly_linked_links().is_empty();
|
||||
SET_FLAG_FROM_TEST(socket->flag, socket_is_linked, SOCK_IS_LINKED);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1295,8 +1295,9 @@ static void std_node_socket_draw(
|
|||
return;
|
||||
}
|
||||
|
||||
if ((sock->in_out == SOCK_OUT) || (sock->flag & SOCK_IS_LINKED) ||
|
||||
(sock->flag & SOCK_HIDE_VALUE)) {
|
||||
if ((sock->in_out == SOCK_OUT) || (sock->flag & SOCK_HIDE_VALUE) ||
|
||||
((sock->flag & SOCK_IS_LINKED) && !(sock->link->is_muted())))
|
||||
{
|
||||
node_socket_button_label(C, layout, ptr, node_ptr, text);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1098,7 +1098,7 @@ void node_set_hidden_sockets(SpaceNode *snode, bNode *node, int set)
|
|||
}
|
||||
}
|
||||
LISTBASE_FOREACH (bNodeSocket *, sock, &node->outputs) {
|
||||
if (nodeCountSocketLinks(snode->edittree, sock) == 0) {
|
||||
if ((sock->flag & SOCK_IS_LINKED) == 0) {
|
||||
sock->flag |= SOCK_HIDDEN;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue