### Godot version

4.1

### System information

Fedora, RX 590

### Issue description

Between 4.0.2 release and 4.0.3 RC1 the hotzone of the visual shader nodes have shrunk on the side that overlaps the node itself.
![Screenshot from 2023-06-22 12-14-19](https://github.com/godotengine/godot/assets/7917475/255feaf2-6e8c-4e7b-a1d9-0b86f28b1ec2)


### Steps to reproduce

Download 4.0.2 release and 4.0.3-rc1. 

Open MRP, navigate to hotzone.tres shader.

Zoom out to this level of zoom: 
![image](https://github.com/godotengine/godot/assets/7917475/5a3ffd5f-7760-4ced-a6aa-7861c2c1206f)

Try to extract a pin from ColorOp node.

In 4.0.3 you can observe how if you're not very precise you will drag the node around.

### Minimal reproduction project

[hotzone.zip](https://github.com/godotengine/godot/files/11832820/hotzone.zip)

if (p_v == p_w) {
		int min_order = MAX_ORDER;
		Connection incoming;
		for (List<Connection>::Element *E = connections.front(); E; E = E->next()) {
			if (E->get().to == p_w) {
				ORDER(E->get().from, r_layers);
				if (min_order > order) {
					min_order = order;
					incoming = E->get();
				}
			}
		}
		if (incoming.from != StringName()) {
			GraphNode *gfrom = Object::cast_to<GraphNode>(r_node_names[incoming.from]);
			GraphNode *gto = Object::cast_to<GraphNode>(r_node_names[p_w]);
			Vector2 frompos = gfrom->get_connection_output_position(incoming.from_port);
			Vector2 topos = gto->get_connection_input_position(incoming.to_port);
			
			if (gfrom->is_selected()) {
				Vector2 connected_block_pos = r_node_positions[r_root[incoming.from]];
				if (connected_block_pos.y != FLT_MAX) {
					
					threshold = connected_block_pos.y + (real_t)r_inner_shift[incoming.from] - (real_t)r_inner_shift[p_w] + frompos.y - topos.y;
				}
			}
		}
	}
	if (threshold == FLT_MIN && (StringName)r_align[p_w] == p_v) {
		
		int min_order = MAX_ORDER;