fix: X11 injector sends 'u' instead of backspace in paste_via_clipboard

paste_via_clipboard() called send_keycode(22, false) which sends evdev
keycode 22 = KEY_U (letter 'u'), not KEY_BACKSPACE (evdev 14). This
caused garbled output whenever Vietnamese Unicode text was pasted via
clipboard (every VNI correction with accented characters).

send_backspace() had the same wrong evdev keycode.
This commit is contained in:
Khoa Vo 2026-07-04 16:09:20 +07:00
parent a13c192d65
commit ed23d6bc35

View file

@ -417,10 +417,10 @@ impl X11Injector {
// (unlikely at this point, but be safe) // (unlikely at this point, but be safe)
self.handle_pending_events(); self.handle_pending_events();
// Send backspaces via XTest (X11 keycode 22 = backspace) // Send backspaces via XTest (evdev 14 = KEY_BACKSPACE → X11 22)
if backspaces > 0 { if backspaces > 0 {
for _ in 0..backspaces { for _ in 0..backspaces {
self.send_keycode(22, false); self.send_keycode(14, false);
} }
} }
@ -523,7 +523,7 @@ impl KeyInjector for X11Injector {
} }
fn send_backspace(&self) -> InjectResult { fn send_backspace(&self) -> InjectResult {
self.send_keycode(22, false); // X11 keycode 22 = backspace self.send_keycode(14, false); // evdev 14 = KEY_BACKSPACE → X11 22
InjectResult::Success InjectResult::Success
} }