### Godot version

v4.1.1.stable.official [bd6af8e0e]

### System information

Godot v4.1.1.stable - Ubuntu 22.04.2 LTS 22.04 - Vulkan (Forward+) - integrated Intel(R) UHD Graphics 615 (AML-KBL) () - Intel(R) Core(TM) i3-10100Y CPU @ 1.30GHz (4 Threads)

### Issue description

Summary: When editing the subregion of a StyleBoxTexture, it shows me the entire spritesheet of the Atlas texture, instead of the selected portion of the atlas, making it difficult (and non-intuitive) to correctly select the subregion I need. 

What I expect: I understand that the sub-region may be used to emulate the behavior of a nine-patch. So I would expect to see there the subregion that i selected previously from the Atlas as the texture to be shown.

I have only tested this in a Panel Container

### Steps to reproduce

I found this problem when doing these steps:

- Add a PanelContainer node
- In the inspector select Theme Overrrides -> Style -> new StyleBoxTexture
- In the texture of the StyleBoxTexture select new AtlasTexture
- Dropped the spritesheet in the Atlas of the AtlasTexture
- In Region of the AtlasTexture, selected Edit Region and drew the rectangle on the texture i want:
![image](https://github.com/godotengine/godot/assets/1207326/2e9624b1-63bc-4267-8d7f-59e82df7896e)

- Back in the StyleBoxTexture options, in Sub-Region, clicked on Edit Region to select the nine-patch region i need
- Here is where the region editor shows me the entire spritesheet and not the sub-texture i selected from the atlas. The image below shows the axis correctly positioned for the nine-patch to work, but it is not intuitive because it has to be positioned without seeing the correct texture, making it difficult to finetune for some textures.

![image](https://github.com/godotengine/godot/assets/1207326/a5023afd-7e4b-47c8-adfc-03fda7f6301b)


### Minimal reproduction project

N/A
for (int x = 0; x < texture->get_width(); x++) {
			if (texture->is_pixel_opaque(x, y)) {
				bool found = false;
				for (Rect2 &E : autoslice_cache) {
					Rect2 grown = E.grow(1.5);
					if (grown.has_point(Point2(x, y))) {
						E.expand_to(Point2(x, y));
						E.expand_to(Point2(x + 1, y + 1));
						x = E.position.x + E.size.x - 1;
						bool merged = true;
						while (merged) {
							merged = false;
							bool queue_erase = false;
							for (List<Rect2>::Element *F = autoslice_cache.front(); F; F = F->next()) {
								if (queue_erase) {
									autoslice_cache.erase(F->prev());
									queue_erase = false;
								}
								if (F->get() == E) {
									continue;
								}
								if (E.grow(1).intersects(F->get())) {
									E.expand_to(F->get().position);
									E.expand_to(F->get().position + F->get().size);
									if (F->prev()) {
										F = F->prev();
										autoslice_cache.erase(F->next());
									} else {
										queue_erase = true;