Closed
Description
This appears to be triggered by the exact same root cause as #88645 for Windows which was triggered by framework PR #90211.
On Windows, this was fixed by not sending an update on the text input channel on commit events. See flutter/engine#30805 for the fix PR for that OS.
Repro steps for Korean:
- Press ㅂ. ㅂ is emitted in the text field.
- Press ㅏ. 바 is emitted in the text field.
- Press ㄴ. 반 is emitted in the text field.
- Press ㅏ. At this point, the current character being composed (반) cannot be modified in a meaningful way, and the IME determines that the user is typing 바 followed by 나. Two messages are emitted to the framework, one immediately after the other. First 바, then 나. The Text field now contains 바나 and the composing range consists of the second character (나).
- Press ㄴ. 난 is emitted in the text field, overwriting the entire contents.
Expected behaviour:
- Press ㅂ. Text field contains ㅂ.
- Press ㅏ. Text field contains 바.
- Press ㄴ. Text field contains 반.
- Press ㅏ. Text field contains 바나.
- Press ㄴ. Text field contains 바난 .