1
0
Fork 0
forked from wry/wry

seat: implement per-device keymaps

This commit is contained in:
Julian Orth 2024-04-12 17:06:16 +02:00
parent 225995eb2f
commit 826f40adca
21 changed files with 293 additions and 71 deletions

View file

@ -196,7 +196,20 @@ impl WlSeatGlobal {
time_usec,
key,
state,
} => self.key_event(time_usec, key, state),
} => {
let desired_kb_map_id = match dev.keymap_id.get() {
Some(id) => id,
None => self.seat_kb_map_id.get(),
};
if desired_kb_map_id != self.effective_kb_map_id.get() {
let map = match dev.keymap.get() {
Some(map) => map,
None => self.seat_kb_map.get(),
};
self.set_effective_keymap(&map);
}
self.key_event(time_usec, key, state)
}
InputEvent::ConnectorPosition {
time_usec,
connector,

View file

@ -38,7 +38,7 @@ impl WlKeyboard {
}
pub fn send_keymap(&self) {
let map = self.seat.global.kb_map.get();
let map = self.seat.global.effective_kb_map.get();
let fd = match self.seat.keymap_fd(&map) {
Ok(fd) => fd,
Err(e) => {