Skip to content

Linux: CJK text input broken on single-line textfields #97174

Closed
@cbracken

Description

@cbracken

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 바난 .

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work lista: desktopRunning on desktopa: text inputEntering text in a text field or keyboard related problemsc: regressionIt was better in the past than it is nowplatform-linuxBuilding on or for Linux specifically

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions