mirror of
https://github.com/storytold/cadcraft.git
synced 2026-10-26 11:56:50 -06:00
* ui: accept IME composition and commit in the command line (#1761) The command line is a custom buffer with keyboard focus staying on the drawing, so no egui TextEdit ever owned the IME: egui never published an IME output, winit never called set_ime_allowed(true), and a Windows IME (Microsoft Pinyin, Japanese, Korean) could not even switch on. Even when IME events arrived they were ignored, so in-place single-line TEXT edits (and every other text prompt) accepted ASCII only. - Publish an IME output (command-line rect and caret) while a prompt asks for text, enabling the OS IME; release it when the prompt no longer collects text, so ASCII typing and shortcuts keep their behaviour. - Handle Event::Ime: Preedit is drawn as an underlined composition after the buffer but never saved; Commit inserts the committed string once. Newline/Return commits are ignored like egui's own text fields, and Enter/Escape/submit clear any composition. Tests: a headless command-line test asserts the IME is enabled for a TEXTEDIT prompt, the preedit stays out of the buffer, the commit lands exactly once and the text entity changes; a kittest double-click test edits TEXT in place with IME preedit and commit. * cmdline IME: build the IMEOutput with egui 0.37's constructor and a context generation Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Brandon Thomas <echelon@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>