diff --git a/src/core/button.rs b/src/core/button.rs index 4a050f8..43f0412 100644 --- a/src/core/button.rs +++ b/src/core/button.rs @@ -107,6 +107,8 @@ struct Press { const PRESSES_MAX: usize = 64; pub trait Keyboard { + fn key_supported(&self, sym: Keysym) -> bool; + fn press(&mut self, sym: Keysym); fn release(&mut self, sym: Keysym); fn change_layout(&mut self, layout: &Layout); diff --git a/src/wayland/keyboard.rs b/src/wayland/keyboard.rs index adfa752..497a12c 100644 --- a/src/wayland/keyboard.rs +++ b/src/wayland/keyboard.rs @@ -89,6 +89,14 @@ impl VirtualKeyboard { } impl Keyboard for VirtualKeyboard { + fn key_supported(&self, sym: Keysym) -> bool + { + match sym.name() { + Some(n) => n.starts_with("XK_"), + None => false, + } + } + fn press(&mut self, sym: Keysym) { if sym == Keysym::NoSymbol || sym == Keysym::XF86_Fn {