seat: implement per-device keymaps
This commit is contained in:
parent
225995eb2f
commit
826f40adca
21 changed files with 293 additions and 71 deletions
11
src/state.rs
11
src/state.rs
|
|
@ -74,7 +74,7 @@ use {
|
|||
ExtForeignToplevelListV1Id, JayRenderCtxId, JaySeatEventsId, JayWorkspaceWatcherId,
|
||||
ZwpLinuxDmabufFeedbackV1Id,
|
||||
},
|
||||
xkbcommon::{XkbContext, XkbKeymap},
|
||||
xkbcommon::{KeymapId, XkbContext, XkbKeymap},
|
||||
xwayland::{self, XWaylandEvent},
|
||||
},
|
||||
ahash::AHashMap,
|
||||
|
|
@ -244,6 +244,15 @@ pub struct DeviceHandlerData {
|
|||
pub device: Rc<dyn InputDevice>,
|
||||
pub syspath: Option<String>,
|
||||
pub devnode: Option<String>,
|
||||
pub keymap_id: Cell<Option<KeymapId>>,
|
||||
pub keymap: CloneCell<Option<Rc<XkbKeymap>>>,
|
||||
}
|
||||
|
||||
impl DeviceHandlerData {
|
||||
pub fn set_keymap(&self, keymap: &Rc<XkbKeymap>) {
|
||||
self.keymap_id.set(Some(keymap.id));
|
||||
self.keymap.set(Some(keymap.clone()));
|
||||
}
|
||||
}
|
||||
|
||||
pub struct ConnectorData {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue