### Godot version

4.2 dev4

### System information

Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1060 (NVIDIA; 30.0.15.1403) - Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 Threads)

### Issue description

When you write a text in LineEdit (e.g. in the inspector) and the text is long enough to be scrolled, and then you delete all text with Ctrl + A -> Backspace, writing again will not show the first character.

https://github.com/godotengine/godot/assets/2223172/6432d029-6e56-404d-b159-1bd532513dc6



### Steps to reproduce

- add some node with a single-line text property
- edit the property, write something that doesn't fit the LineEdit width
- Ctrl + A -> Backspace
- write something again

### Minimal reproduction project

N/A
if ((text.length() <= 0) || (caret_column == 0)) {
		return;
	}
	text = text.left(caret_column - 1) + text.substr(caret_column);
	_shape();
	set_caret_column(get_caret_column() - 1);
	_text_changed();
}
void LineEdit::delete_text(int p_from_column, int p_to_column) {
	ERR_FAIL_COND_MSG(p_from_column < 0 || p_from_column > p_to_column || p_to_column > text.length(),
			vformat("Positional parameters (from: %d, to: %d) are inverted or outside the text length (%d).", p_from_column, p_to_column, text.length()));
	text = text.left(p_from_column) + text.substr(p_to_column);
	_shape();
	caret_column -= CLAMP(caret_column - p_from_column, 0, p_to_column - p_from_column);
	if (caret_column >= text.length()) {
		caret_column = text.length();
	}
	if (!text_changed_dirty) {
		if (is_inside_tree()) {
			MessageQueue::get_singleton()->push_call(this, "_text_changed");
		}
		text_changed_dirty = true;
	}
}
void LineEdit::set_text(String p_text) {