### 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.
if (!p_text_changed) {
		RID r = text.write[p_line].data_buf->get_rid();
		int spans = TS->shaped_get_span_count(r);
		for (int i = 0; i < spans; i++) {
			TS->shaped_set_span_update_font(r, i, font->get_rids(), font_size, font->get_opentype_features());
		}
		for (int i = 0; i < TextServer::SPACING_MAX; i++) {
			TS->shaped_text_set_spacing(r, TextServer::SpacingType(i), font->get_spacing(TextServer::SpacingType(i)));
		}
	}
	
	if (tab_size > 0) {
		Vector<float> tabs;
		tabs.push_back(font->get_char_size(' ', font_size).width * tab_size);
		text.write[p_line].data_buf->tab_align(tabs);
	}
	
	const int old_height = text.write[p_line].height;
	const int wrap_amount = get_line_wrap_amount(p_line);
	int height = font_height;
	for (int i = 0; i <= wrap_amount; i++) {
		height = MAX(height, text[p_line].data_buf->get_line_size(i).y);
	}
	text.write[p_line].height = height;
	
	if (old_height == line_height && height < line_height) {
		_calculate_line_height();
	} else {
		line_height = MAX(height, line_height);
	}