bc1ae3968e5117b76a06f540101c4322de490b71
Phase H landed the transcription preview overlay. Phase C landed auto-paste. With both enabled the combo is broken on Wayland compositors (KWin, Mutter): the overlay is always_on_top + visible at the moment paste_text fires its Ctrl+V keystroke, and the compositor resolves the key to the topmost visible window — which is the overlay, even though we built it with focused=false. Net result: the transcript pastes into Kon instead of whatever app the user was actually dictating into. Fix, mirroring OpenWhispr's PR #246 shape: before trigger_paste_keystroke, hide the transcription-preview window if it exists and is visible, then sleep PREVIEW_HIDE_SETTLE_MS (80ms) so the compositor recomputes focus onto the previously-focused app. No reshow — the user's confirmation is the text appearing in the target app, not a fading overlay. The 80ms is enough on KWin and Mutter; tunable if it shows up differently on other compositors. paste_text now takes the tauri::AppHandle so it can reach the preview window. Frontend invocation signature is unchanged (Tauri injects the handle; the JS call site still passes { text }). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
Languages
Rust
56.1%
Svelte
26.8%
TypeScript
7.8%
Shell
3.2%
HTML
2.4%
Other
3.7%