The flush-char handling backspaced and re-typed the already-on-screen word before/around the forwarded space. In the grabbed-device injection path this raced against the separately-forwarded space, eating spaces and merging finished words (e.g. "mất sự" -> "mấtsự", "đầu ngã xuống" -> "đầungãxuống"). The composed word is already correct on screen, so a non-macro flush now finalizes state without backspace+retype: - engine: process_key returns None on flush (macros still Replace) - daemon replay_and_inject: just types the flush char - daemon did_flush branch: clears state without retyping Add regression tests for flush behavior and multi-word spacing. Co-Authored-By: vndangkhoa <vonguyendangkhoa@gmail.com> |
||
|---|---|---|
| .. | ||
| examples | ||
| src | ||
| tests | ||
| Cargo.toml | ||
| gen_tests_output.json | ||