fix(suggestion): paste after the shortcut keys are released and keep typing detection stable

Ctrl+Alt+Enter pasted while Ctrl+Alt were still down, so the target app got
Ctrl+Alt+V; accepting now closes the panel and waits for the modifiers to be
released. Candidates are accepted on pointer press because the list is
redrawn as new candidates stream in, which swallowed clicks.

The typing gate identified the focused field by its bounds, so chat boxes
that grow while typing looked like a new field on every keystroke and were
reported as "not typing". Fields are now keyed by window, control type and
name, and a mouse click re-baselines the text instead. The decision log
includes both gate values.

The live-caption model selector moves to the caption section of the General
tab, next to the other caption settings.
This commit is contained in:
Yun Chan 2026-09-24 22:01:10 +09:00
parent 4b0f685941
commit da0da98285
8 changed files with 144 additions and 55 deletions

View file

@ -25,6 +25,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
page by itself, and at the last candidate the selection waits while more are still
being generated. The separate Ctrl+Alt+Left/Right page shortcuts are gone; they also
collided with the display-rotation shortcut of Intel graphics drivers.
- The live-caption model is chosen next to the other caption settings in the General
tab.
### Fixed
- **Accepting a suggestion with Ctrl+Alt+Enter did not paste.** The paste was sent
while Ctrl+Alt were still held, so the app received Ctrl+Alt+V. The panel now closes
at once and the text is pasted as soon as the keys are released.
- **Clicking a suggestion did nothing** when a new candidate arrived between pressing
and releasing the mouse button; a candidate is now accepted on press.
- **Suggestions rarely appeared in chat boxes that grow as you type.** The growing box
was taken for a different field on every keystroke, which kept blocking suggestions
as "not typing". Fields are now told apart by window and control, and a mouse click
re-checks whether you have typed since.
### Planned
- macOS / Linux support