diff --git a/src/wayland/keyboard.rs b/src/wayland/keyboard.rs index 52321b7..a3de4a5 100644 --- a/src/wayland/keyboard.rs +++ b/src/wayland/keyboard.rs @@ -154,6 +154,7 @@ impl Keyboard for VirtualKeyboard { self.keymap.write(b"xkb_keymap {\n").unwrap(); self.keymap.write(b" xkb_symbols \"ufkbd\" {\n").unwrap(); + self.keycodes.clear(); for row in layout.rows() { for key in row { for part in &key.parts { @@ -161,6 +162,10 @@ impl Keyboard for VirtualKeyboard { continue; } + if self.keycodes.contains_key(&part.sym()) { + continue; + } + self.keycodes.insert(part.sym(), keycode - 8); self.write_key(part, keycode); keycode += 1;