fix(tunnel): inject macOS desktop-tunnel keystrokes instead of dropping them (VA-138) #148
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/VA-138-macos-tunnel-keysym"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes VA-138: macOS keyboard input over the Desktop tunnel was silently discarded.
Root cause
inject_keysyminhost/tunnel.rsdispatched key events per-OS with a#[cfg(not(any(target_os = "linux", target_os = "windows")))]fall-through arm that dropped the event (let _ = (keysym, press);). VA-93 added the macOSvervain_agent_kvm::key_event(CGEvent keyboard injection, taking a keysym name like the Windows backend) but did not update this dispatch, so macOS hit the discard arm. Mouse input was unaffected: it flows throughpointer::inject, whose non-Linux fallback already calls the macOSmouse_move/mouse_buttonbackends.Fix
Fold macOS into the Windows named-keysym arm (
any(target_os = "windows", target_os = "macos")): both resolve the keysym to a name viakeymap::keysym_to_nameand pass it tokey_event, which the native backend maps (SendInputon Windows, CGEvent on macOS). The fall-through discard arm now covers only genuinely unsupported platforms. Ten-line change in one function.Validation
clippy --deny warningsandfmtclean on Linux.keymap::keysym_to_name+key_event, both unconditional exports validated to compile for apple-darwin in VA-93.🤖 Generated with Claude Code