From 9391046c325e53886eac5ad430ee51ed8ac8f14c Mon Sep 17 00:00:00 2001 From: Hendrik Brucker Date: Tue, 24 Oct 2023 16:19:33 +0200 Subject: [PATCH] Fix GraphNode slot index inconsistency. --- scene/gui/graph_edit.cpp | 12 ++++++------ scene/gui/graph_node.cpp | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scene/gui/graph_edit.cpp b/scene/gui/graph_edit.cpp index 1fc501e980f..8dddbf78cf8 100644 --- a/scene/gui/graph_edit.cpp +++ b/scene/gui/graph_edit.cpp @@ -598,7 +598,7 @@ bool GraphEdit::_filter_input(const Point2 &p_point) { // Determine slot height. int slot_index = graph_node->get_input_port_slot(j); - Control *child = Object::cast_to(graph_node->get_child(slot_index)); + Control *child = Object::cast_to(graph_node->get_child(slot_index, false)); port_size.height = MAX(port_size.height, child ? child->get_size().y : 0); @@ -612,7 +612,7 @@ bool GraphEdit::_filter_input(const Point2 &p_point) { // Determine slot height. int slot_index = graph_node->get_output_port_slot(j); - Control *child = Object::cast_to(graph_node->get_child(slot_index)); + Control *child = Object::cast_to(graph_node->get_child(slot_index, false)); port_size.height = MAX(port_size.height, child ? child->get_size().y : 0); if (is_in_output_hotzone(graph_node, j, p_point / zoom, port_size)) { @@ -643,7 +643,7 @@ void GraphEdit::_top_layer_input(const Ref &p_ev) { // Determine slot height. int slot_index = graph_node->get_output_port_slot(j); - Control *child = Object::cast_to(graph_node->get_child(slot_index)); + Control *child = Object::cast_to(graph_node->get_child(slot_index, false)); port_size.height = MAX(port_size.height, child ? child->get_size().y : 0); if (is_in_output_hotzone(graph_node, j, click_pos, port_size)) { @@ -700,7 +700,7 @@ void GraphEdit::_top_layer_input(const Ref &p_ev) { // Determine slot height. int slot_index = graph_node->get_input_port_slot(j); - Control *child = Object::cast_to(graph_node->get_child(slot_index)); + Control *child = Object::cast_to(graph_node->get_child(slot_index, false)); port_size.height = MAX(port_size.height, child ? child->get_size().y : 0); if (is_in_input_hotzone(graph_node, j, click_pos, port_size)) { @@ -777,7 +777,7 @@ void GraphEdit::_top_layer_input(const Ref &p_ev) { // Determine slot height. int slot_index = graph_node->get_output_port_slot(j); - Control *child = Object::cast_to(graph_node->get_child(slot_index)); + Control *child = Object::cast_to(graph_node->get_child(slot_index, false)); port_size.height = MAX(port_size.height, child ? child->get_size().y : 0); int type = graph_node->get_output_port_type(j); @@ -801,7 +801,7 @@ void GraphEdit::_top_layer_input(const Ref &p_ev) { // Determine slot height. int slot_index = graph_node->get_input_port_slot(j); - Control *child = Object::cast_to(graph_node->get_child(slot_index)); + Control *child = Object::cast_to(graph_node->get_child(slot_index, false)); port_size.height = MAX(port_size.height, child ? child->get_size().y : 0); int type = graph_node->get_input_port_type(j); diff --git a/scene/gui/graph_node.cpp b/scene/gui/graph_node.cpp index fdebca3d288..3b1c1a153fe 100644 --- a/scene/gui/graph_node.cpp +++ b/scene/gui/graph_node.cpp @@ -620,7 +620,7 @@ void GraphNode::_port_pos_update() { port_cache.pos = Point2i(edgeofs, vertical_ofs + size.height / 2); port_cache.type = slot_table[i].type_left; port_cache.color = slot_table[i].color_left; - port_cache.slot_index = child->get_index(); // Index with internal nodes included. + port_cache.slot_index = child->get_index(false); left_port_cache.push_back(port_cache); } if (slot_table[i].enable_right) { @@ -628,7 +628,7 @@ void GraphNode::_port_pos_update() { port_cache.pos = Point2i(get_size().width - edgeofs, vertical_ofs + size.height / 2); port_cache.type = slot_table[i].type_right; port_cache.color = slot_table[i].color_right; - port_cache.slot_index = child->get_index(); // Index with internal nodes included. + port_cache.slot_index = child->get_index(false); right_port_cache.push_back(port_cache); } }