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)
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 {
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 {
self.send_keycode(22, false); // X11 keycode 22 = backspace
self.send_keycode(14, false); // evdev 14 = KEY_BACKSPACE → X11 22
InjectResult::Success
}