### Godot version

v4.0.1.stable.official [cacf49999]

### System information

Windows 10

### Issue description

If you use Sprite2D with a regular CompressedTexture and set a Region on it, then use a Sprite2D with a CanvasTexture and a different texture in the diffuse, and try to set a Region, the Region Editor display will show the texture from the first sprite2D node. I would expect it to show the diffuse texture from the current Sprite2D.
![image](https://user-images.githubusercontent.com/7292421/231493673-4eb152e0-81ed-4248-8465-71242c291cd2.png)
![image](https://user-images.githubusercontent.com/7292421/231493749-6173993b-e77c-4899-961e-9a055c07e351.png)




### Steps to reproduce

Make a sprite2D node
add a texture to it 
set Region to Enabled
click Edit Region under 'Region'
set any region

Make another sprite2D node
add a CanvasTexture to it
add a different texture to the Diffuse part
set Region to Enabled
click Edit Region under 'Region'
see wrong texture

### Minimal reproduction project

[RegionEditorBug.zip](https://github.com/godotengine/godot/files/11212626/RegionEditorBug.zip)

float new_margin = 0;
				if (snap_mode != SNAP_GRID) {
					if (edited_margin == 0) {
						new_margin = prev_margin + (mm->get_position().y - drag_from.y) / draw_zoom;
					} else if (edited_margin == 1) {
						new_margin = prev_margin - (mm->get_position().y - drag_from.y) / draw_zoom;
					} else if (edited_margin == 2) {
						new_margin = prev_margin + (mm->get_position().x - drag_from.x) / draw_zoom;
					} else if (edited_margin == 3) {
						new_margin = prev_margin - (mm->get_position().x - drag_from.x) / draw_zoom;
					} else {
						ERR_PRINT("Unexpected edited_margin");
					}
					if (snap_mode == SNAP_PIXEL) {
						new_margin = Math::round(new_margin);
					}
				} else {
					Vector2 pos_snapped = snap_point(mtx.affine_inverse().xform(mm->get_position()));
					Rect2 rect_rounded = Rect2(rect.position.round(), rect.size.round());
					if (edited_margin == 0) {
						new_margin = pos_snapped.y - rect_rounded.position.y;
					} else if (edited_margin == 1) {
						new_margin = rect_rounded.size.y + rect_rounded.position.y - pos_snapped.y;
					} else if (edited_margin == 2) {
						new_margin = pos_snapped.x - rect_rounded.position.x;
					} else if (edited_margin == 3) {
						new_margin = rect_rounded.size.x + rect_rounded.position.x - pos_snapped.x;
					} else {
						ERR_PRINT("Unexpected edited_margin");
					}