### Godot version

4.0 beta 15

### System information

Windows 10

### Issue description

It happened with both Google IME and MS-IME, and there was no problem until Beta14.
When typing Japanese characters, it is common to select a character from the suggestion window and then start typing the next character before confirming.
In this case, uncommitted characters are forcibly committed, and input of the next character begins.

**↓Beta15**

https://user-images.githubusercontent.com/186786/214753450-b493cca6-2644-4b3d-8cd2-660565cc3547.mp4

**↓Beta14**

https://user-images.githubusercontent.com/186786/214755127-dde819cc-4d63-403a-99b0-09821671f74e.mp4



### Steps to reproduce

It happened with both Google IME and MS-IME in beta15

### Minimal reproduction project

It is project independent and happens in the editor.
bool drop_override = Control::can_drop_data(p_point, p_data); 
	if (drop_override) {
		return drop_override;
	}
	return is_editable() && p_data.get_type() == Variant::STRING;
}
void TextEdit::drop_data(const Point2 &p_point, const Variant &p_data) {
	Control::drop_data(p_point, p_data);
	if (p_data.get_type() == Variant::STRING && is_editable()) {
		Point2i pos = get_line_column_at_pos(get_local_mouse_pos());
		int caret_row_tmp = pos.y;
		int caret_column_tmp = pos.x;
		if (selection_drag_attempt) {
			selection_drag_attempt = false;
			if (!is_mouse_over_selection(!Input::get_singleton()->is_key_pressed(Key::CTRL))) {
				
				set_caret_line(get_selection_to_line(), false, false);
				set_caret_column(get_selection_to_column());
				begin_complex_operation();
				if (!Input::get_singleton()->is_key_pressed(Key::CTRL)) {
					if (caret_row_tmp > get_selection_to_line()) {
						caret_row_tmp = caret_row_tmp - (get_selection_to_line() - get_selection_from_line());
					} else if (caret_row_tmp == get_selection_to_line() && caret_column_tmp >= get_selection_to_column()) {
						caret_column_tmp = caret_column_tmp - (get_selection_to_column() - get_selection_from_column());
					}
					delete_selection();
				} else {