Browse Source

[GraphEdit] Fix GraphNode's ports interactable through other GraphNodes

Hendrik Brucker 1 year ago
parent
commit
6a067a4a80
1 changed files with 12 additions and 0 deletions
  1. 12 0
      scene/gui/graph_edit.cpp

+ 12 - 0
scene/gui/graph_edit.cpp

@@ -898,6 +898,12 @@ bool GraphEdit::_filter_input(const Point2 &p_point) {
 				return true;
 			}
 		}
+
+		// This prevents interactions with a port hotzone that is behind another node.
+		Rect2 graph_node_rect = Rect2(graph_node->get_position(), graph_node->get_size() * zoom);
+		if (graph_node_rect.has_point(click_pos * zoom)) {
+			break;
+		}
 	}
 
 	return false;
@@ -1027,6 +1033,12 @@ void GraphEdit::_top_connection_layer_input(const Ref<InputEvent> &p_ev) {
 					return;
 				}
 			}
+
+			// This prevents interactions with a port hotzone that is behind another node.
+			Rect2 graph_node_rect = Rect2(graph_node->get_position(), graph_node->get_size() * zoom);
+			if (graph_node_rect.has_point(click_pos * zoom)) {
+				break;
+			}
 		}
 	}