Skip to content

Track uncommitted input text so an IME (CJK input) can query it back#15251

Open
cammeresi wants to merge 1 commit intolibsdl-org:SDL2from
cammeresi:20260322-ime
Open

Track uncommitted input text so an IME (CJK input) can query it back#15251
cammeresi wants to merge 1 commit intolibsdl-org:SDL2from
cammeresi:20260322-ime

Conversation

@cammeresi
Copy link
Copy Markdown

In CJK input, keystrokes are rendered into text provisionally and may not be in the final form that will be committed to the text input widget. For example, in Korean input, a syllable is typed in using Hangeul, but the user may then decide to replace it with a Hanja character. In order for such translation to happen, the IME must be able to query back the current uncommitted text.

Existing Issue(s)

Related: skyjake/lagrange#758

@slouken
Copy link
Copy Markdown
Collaborator

slouken commented Mar 23, 2026

This generally looks good. Have you tested this with Chinese and Japanese IME composition?

@cammeresi
Copy link
Copy Markdown
Author

cammeresi commented Mar 23, 2026

This generally looks good. Have you tested this with Chinese and Japanese IME composition?

No, sorry, I do not speak those languages although I think the mechanisms involved are similar.

@slouken
Copy link
Copy Markdown
Collaborator

slouken commented Mar 23, 2026

They're different enough that I'd like a native speaker to test your changes before accepting them.

@slouken slouken added this to the 3.6.0 milestone Mar 23, 2026
@cammeresi
Copy link
Copy Markdown
Author

I understand. Is that testing something that you will take care of? I'm afraid that I don't know any native speakers of Chinese or Japanese.

If accepted, I can see about porting to SDL3 at some point.

@slouken slouken removed this from the 3.6.0 milestone Mar 23, 2026
In CJK input, keystrokes are rendered into text provisionally and
may not be in the final form that will be committed to the text
input widget.  For example, in Korean input, a syllable is typed
in using Hangeul, but the user may then decide to replace it with
a Hanja character.  In order for such translation to happen, the
IME must be able to query back the current uncommitted text.
@cammeresi
Copy link
Copy Markdown
Author

I removed some code related to backspace that was incorrect.

I'm not sure if this code is actually required for C/J. Japanese composition appears to work without it. This code may only be needed for Korean Hanja conversion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants