### 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)

}
			_remove_text(get_caret_line(caret_idx), column, get_caret_line(caret_idx), from_column);
			set_caret_line(get_caret_line(caret_idx), false, true, 0, caret_idx);
			set_caret_column(column, caret_idx == 0, caret_idx);
			adjust_carets_after_edit(caret_idx, get_caret_line(caret_idx), column, get_caret_line(caret_idx), from_column);
			
			if (overlapping_caret_index != -1) {
				backspace(overlapping_caret_index);
				i++;
				carets_to_remove.push_back(overlapping_caret_index);
				set_caret_column(get_caret_column(overlapping_caret_index), caret_idx == 0, caret_idx);
			}
			continue;
		}
	}
	
	carets_to_remove.sort();
	for (int i = carets_to_remove.size() - 1; i >= 0; i--) {
		remove_caret(carets_to_remove[i]);
	}
	end_action();
}
void TextEdit::_delete(bool p_word, bool p_all_to_right) {
	if (!editable) {
		return;
	}
	start_action(EditAction::ACTION_DELETE);
	Vector<int> carets_to_remove;
	Vector<int> caret_edit_order = get_caret_index_edit_order();
	for (int i = 0; i < caret_edit_order.size(); i++) {