diff --git a/source/blender/nodes/geometry/nodes/node_geo_menu_switch.cc b/source/blender/nodes/geometry/nodes/node_geo_menu_switch.cc index 849609a9b6a..8f17319e67c 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_menu_switch.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_menu_switch.cc @@ -145,8 +145,8 @@ static void node_copy_storage(bNodeTree * /*dst_tree*/, bNode *dst_node, const b static void node_gather_link_searches(GatherLinkSearchOpParams ¶ms) { + const eNodeSocketDatatype data_type = eNodeSocketDatatype(params.other_socket().type); if (params.in_out() == SOCK_IN) { - const eNodeSocketDatatype data_type = eNodeSocketDatatype(params.other_socket().type); if (data_type == SOCK_MENU) { params.add_item(IFACE_("Menu"), [](LinkSearchOpParams ¶ms) { bNode &node = params.add_node("GeometryNodeMenuSwitch"); @@ -155,11 +155,13 @@ static void node_gather_link_searches(GatherLinkSearchOpParams ¶ms) } } else { - params.add_item(IFACE_("Output"), [](LinkSearchOpParams ¶ms) { - bNode &node = params.add_node("GeometryNodeMenuSwitch"); - node_storage(node).data_type = params.socket.type; - params.update_and_connect_available_socket(node, "Output"); - }); + if (data_type != SOCK_MENU) { + params.add_item(IFACE_("Output"), [](LinkSearchOpParams ¶ms) { + bNode &node = params.add_node("GeometryNodeMenuSwitch"); + node_storage(node).data_type = params.socket.type; + params.update_and_connect_available_socket(node, "Output"); + }); + } } }