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

v_scroll->set_anchor_and_offset(SIDE_TOP, ANCHOR_BEGIN, 0);
			v_scroll->set_anchor_and_offset(SIDE_BOTTOM, ANCHOR_END, 0);
		} break;
		case NOTIFICATION_DRAW: {
			draw_style_box(get_theme_stylebox(SNAME("bg")), Rect2(Point2(), get_size()));
			if (is_using_snap()) {
				
				int snap = get_snap();
				Vector2 offset = get_scroll_ofs() / zoom;
				Size2 size = get_size() / zoom;
				Point2i from = (offset / float(snap)).floor();
				Point2i len = (size / float(snap)).floor() + Vector2(1, 1);
				Color grid_minor = get_theme_color(SNAME("grid_minor"));
				Color grid_major = get_theme_color(SNAME("grid_major"));
				for (int i = from.x; i < from.x + len.x; i++) {
					Color color;
					if (ABS(i) % 10 == 0) {
						color = grid_major;
					} else {
						color = grid_minor;
					}
					float base_ofs = i * snap * zoom - offset.x * zoom;
					draw_line(Vector2(base_ofs, 0), Vector2(base_ofs, get_size().height), color);
				}
				for (int i = from.y; i < from.y + len.y; i++) {
					Color color;
					if (ABS(i) % 10 == 0) {
						color = grid_major;
					} else {
						color = grid_minor;