### Godot version

4.1.2

### System information

Godot v4.1.2.stable.mono - Windows 11 22h2 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3060 (NVIDIA; 31.0.15.3742) - 11th Gen Intel(R) Core(TM) i5-11600K @ 3.90GHz (12 Threads)

### Issue description

in a right to left language (in my case Persian) the Ui gets inverted and i know it should be like that but you just cant work i will leave a screen shot so  you can see
![Screenshot 2023-11-16 042657](https://github.com/godotengine/godot/assets/118190096/76f0849d-945d-407b-b450-391c65c01f0e)


### Steps to reproduce

change the language to Persian

### Minimal reproduction project

N/A
if (parent_control) {
					has_parent_control = true;
					break;
				}
				node = parent;
			}
			if (has_parent_control) {
				
			} else {
				
				Viewport *viewport = get_viewport();
				ERR_FAIL_NULL(viewport);
				data.RI = viewport->_gui_add_root_control(this);
				get_parent()->connect(SNAME("child_order_changed"), callable_mp(get_viewport(), &Viewport::gui_set_root_order_dirty), CONNECT_REFERENCE_COUNTED);
			}
			data.parent_canvas_item = get_parent_item();
			if (data.parent_canvas_item) {
				data.parent_canvas_item->connect("item_rect_changed", callable_mp(this, &Control::_size_changed));
			} else {
				
				Viewport *viewport = get_viewport();
				ERR_FAIL_NULL(viewport);
				viewport->connect("size_changed", callable_mp(this, &Control::_size_changed));
			}
		} break;
		case NOTIFICATION_EXIT_CANVAS: {
			if (data.parent_canvas_item) {
				data.parent_canvas_item->disconnect("item_rect_changed", callable_mp(this, &Control::_size_changed));
				data.parent_canvas_item = nullptr;
			} else {