From adf71ed2c8f22426e16eb6ccc89c57b412fc5ec2 Mon Sep 17 00:00:00 2001 From: Richard Acayan Date: Sun, 4 Aug 2024 21:42:03 -0400 Subject: [PATCH] core: button: add supported keys querying to keyboard trait --- src/core/button.rs | 2 ++ src/wayland/keyboard.rs | 8 ++++++++ 2 files changed, 10 insertions(+) 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 {