Skip to content

Commit

Permalink
Merge pull request godotengine#83892 from Geometror/fix-gn-slot-index
Browse files Browse the repository at this point in the history
Fix GraphNode slot index inconsistency.
  • Loading branch information
akien-mga committed Oct 25, 2023
2 parents ea8b773 + 9391046 commit 3f9af43
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
12 changes: 6 additions & 6 deletions scene/gui/graph_edit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<Control>(graph_node->get_child(slot_index));
Control *child = Object::cast_to<Control>(graph_node->get_child(slot_index, false));

port_size.height = MAX(port_size.height, child ? child->get_size().y : 0);

Expand All @@ -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<Control>(graph_node->get_child(slot_index));
Control *child = Object::cast_to<Control>(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)) {
Expand Down Expand Up @@ -643,7 +643,7 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) {

// Determine slot height.
int slot_index = graph_node->get_output_port_slot(j);
Control *child = Object::cast_to<Control>(graph_node->get_child(slot_index));
Control *child = Object::cast_to<Control>(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)) {
Expand Down Expand Up @@ -700,7 +700,7 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) {

// Determine slot height.
int slot_index = graph_node->get_input_port_slot(j);
Control *child = Object::cast_to<Control>(graph_node->get_child(slot_index));
Control *child = Object::cast_to<Control>(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)) {
Expand Down Expand Up @@ -777,7 +777,7 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) {

// Determine slot height.
int slot_index = graph_node->get_output_port_slot(j);
Control *child = Object::cast_to<Control>(graph_node->get_child(slot_index));
Control *child = Object::cast_to<Control>(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);
Expand All @@ -801,7 +801,7 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) {

// Determine slot height.
int slot_index = graph_node->get_input_port_slot(j);
Control *child = Object::cast_to<Control>(graph_node->get_child(slot_index));
Control *child = Object::cast_to<Control>(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);
Expand Down
4 changes: 2 additions & 2 deletions scene/gui/graph_node.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -620,15 +620,15 @@ 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) {
PortCache port_cache;
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);
}
}
Expand Down

0 comments on commit 3f9af43

Please sign in to comment.