Properly understand keys pressed and unpressed

This commit is contained in:
2025-05-14 22:05:31 -07:00
parent 9d0b9b97b5
commit 5b8475f1a3
4 changed files with 158 additions and 106 deletions

View File

@@ -60,7 +60,7 @@ impl WlClient {
let mut keymap_fd = self.keymap_fd.lock().unwrap();
*keymap_fd = Some(shm::ShmPool::from_fd(fd, size as usize)?);
let mut keymap = self.keymap.lock().unwrap();
let mut keymap = self.keymap.write().unwrap();
*keymap = xkb::gen_id_keysym_mapping(keymap_fd.as_ref().unwrap());
Ok(())
@@ -73,12 +73,12 @@ impl WlClient {
let key = event.read_u32(&mut offset);
let state = event.read_u32(&mut offset);
if let Some(keymap) = &*self.keymap.lock().unwrap() {
if let Some(keymap) = &*self.keymap.read().unwrap() {
if let Some(keysym) = keymap.get(&(key + 8)) {
if keysym == "ESC" && state == 0 {
if keysym[0] == "Escape" && state == 0 {
self.exit();
}
println!("Received key:\n\t{} {}", keysym, if state == 0 {'↑'} else {'↓'});
println!("Received key:\n\t{} {}", keysym[0], if state == 0 {'↑'} else {'↓'});
} else {
eprintln!("Unrecognized key!");
}