engine: Backspace gives the reach back before what was typed
searchkey popped search.raw and then search.seed but never touched search.back, so once the typed syllable was gone the query was nothing but the client's own text: an empty preedit above a full candidate list drawn from syllables the user had not selected, and Enter rewrote them. With 상 written and 태 typed, Ctrl+H offered 狀態; one Backspace left the query 상 and 128 candidates, and Enter replaced the 상 with 上 and dropped the 태 altogether. Undo now runs backwards through what happened -- the keys typed since Ctrl+H, then the reach Ctrl+H made, then the syllable that seeded it -- so the same Backspace narrows 상태 to 태 and offers 太, which is also the only way there was ever going to be to convert the syllable alone. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Reference in New Issue
Block a user