diff --git a/source/blender/blenkernel/BKE_node_tree_zones.hh b/source/blender/blenkernel/BKE_node_tree_zones.hh index af9f466d4c5..550e3b1b7f8 100644 --- a/source/blender/blenkernel/BKE_node_tree_zones.hh +++ b/source/blender/blenkernel/BKE_node_tree_zones.hh @@ -33,7 +33,11 @@ class bNodeTreeZone { Vector child_zones; /** Direct children nodes excluding nodes that belong to child zones. */ Vector child_nodes; - /** Links that enter the zone through the zone border. */ + /** + * Links that enter the zone through the zone border and carry information. This excludes muted + * and unavailable links as well as links that are dangling because they are only connected to a + * reroute. + */ Vector border_links; bool contains_node_recursively(const bNode &node) const; diff --git a/source/blender/blenkernel/intern/node_tree_zones.cc b/source/blender/blenkernel/intern/node_tree_zones.cc index 3697dd1b717..de9c5117473 100644 --- a/source/blender/blenkernel/intern/node_tree_zones.cc +++ b/source/blender/blenkernel/intern/node_tree_zones.cc @@ -196,6 +196,9 @@ static void update_zone_border_links(const bNodeTree &tree, bNodeTreeZones &tree if (link->is_muted()) { continue; } + if (bke::nodeIsDanglingReroute(&tree, link->fromnode)) { + continue; + } bNodeTreeZone *from_zone = const_cast( tree_zones.get_zone_by_socket(*link->fromsock)); bNodeTreeZone *to_zone = const_cast(