### 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
Control *prev_child = nullptr;
		if (from->is_set_as_top_level() || !Object::cast_to<Control>(from->get_parent())) {
			
			prev_child = _prev_control(from);
		} else {
			for (int i = (from->get_index() - 1); i >= 0; i--) {
				Control *c = Object::cast_to<Control>(from->get_parent()->get_child(i));
				if (!c || !c->is_visible_in_tree() || c->is_set_as_top_level()) {
					continue;
				}
				prev_child = c;
				break;
			}
			if (!prev_child) {
				prev_child = Object::cast_to<Control>(from->get_parent());
			} else {
				prev_child = _prev_control(prev_child);
			}
		}
		if (prev_child == from || prev_child == this) { 
			return (get_focus_mode() == FOCUS_ALL) ? prev_child : nullptr;
		}
		if (prev_child->get_focus_mode() == FOCUS_ALL) {
			return prev_child;
		}
		from = prev_child;
	}
	return nullptr;
}
void Control::set_focus_neighbor(Side p_side, const NodePath &p_neighbor) {