### 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)

bool success;
	if (GDVIRTUAL_CALL(_is_in_input_hotzone, p_node, p_port, p_mouse_pos, success)) {
		return success;
	} else {
		Vector2 pos = p_node->get_connection_input_position(p_port) + p_node->get_position();
		return is_in_port_hotzone(pos / zoom, p_mouse_pos, p_port_size, true);
	}
}
bool GraphEdit::is_in_output_hotzone(GraphNode *p_node, int p_port, const Vector2 &p_mouse_pos, const Vector2i &p_port_size) {
	if (p_node->is_resizable()) {
		Ref<Texture2D> resizer = p_node->get_theme_icon(SNAME("resizer"));
		Rect2 resizer_rect = Rect2(p_node->get_position() / zoom + p_node->get_size() - resizer->get_size(), resizer->get_size());
		if (resizer_rect.has_point(p_mouse_pos)) {
			return false;
		}
	}
	bool success;
	if (GDVIRTUAL_CALL(_is_in_output_hotzone, p_node, p_port, p_mouse_pos, success)) {
		return success;
	} else {
		Vector2 pos = p_node->get_connection_output_position(p_port) + p_node->get_position();
		return is_in_port_hotzone(pos / zoom, p_mouse_pos, p_port_size, false);
	}
}
bool GraphEdit::is_in_port_hotzone(const Vector2 &p_pos, const Vector2 &p_mouse_pos, const Vector2i &p_port_size, bool p_left) {