### Godot version

4.0 stable

### System information

Manjaro Linux, kernel 6.1.1-1-MANJARO, AMD Ryzen 5 3600, AMD RX 580

### Issue description

The `wrap_mode` property of the `TextEdit` node doesn't seem to really do anything. Setting it to `LINE_WRAPPING_BOUNDARY` simply means that there won't be an horizontal scrollbar if the text overshoots the boundary, instead of actually forcing the text to the next line so that it stays visible.

### Steps to reproduce

Create a TextEdit node and set its `wrap_mode` property to `LINE_WRAPPING_BOUNDARY`

### Minimal reproduction project

[WrapBugDemo.zip](https://github.com/godotengine/godot/files/10875969/WrapBugDemo.zip)

EditAction get_current_action() const;
	void begin_complex_operation();
	void end_complex_operation();
	bool has_undo() const;
	bool has_redo() const;
	void undo();
	void redo();
	void clear_undo_history();
	bool is_insert_text_operation() const;
	void tag_saved_version();
	uint32_t get_version() const;
	uint32_t get_saved_version() const;
	
	void set_search_text(const String &p_search_text);
	void set_search_flags(uint32_t p_flags);
	Point2i search(const String &p_key, uint32_t p_search_flags, int p_from_line, int p_from_column) const;
	
	Point2 get_local_mouse_pos() const;
	String get_word_at_pos(const Vector2 &p_pos) const;
	Point2i get_line_column_at_pos(const Point2i &p_pos, bool p_allow_out_of_bounds = true) const;
	Point2i get_pos_at_line_column(int p_line, int p_column) const;
	Rect2i get_rect_at_line_column(int p_line, int p_column) const;
	int get_minimap_line_at_pos(const Point2i &p_pos) const;
	bool is_dragging_cursor() const;
	bool is_mouse_over_selection(bool p_edges = true, int p_caret = -1) const;
	
	void set_caret_type(CaretType p_type);
	CaretType get_caret_type() const;
	void set_caret_blink_enabled(const bool p_enabled);
	bool is_caret_blink_enabled() const;