fix(hid): setup xkb extension before querying keyboard device ID
This commit is contained in:
committed by
galister
parent
8fb9ef4a05
commit
b3ae583cb4
@@ -1,6 +1,9 @@
|
|||||||
use xkbcommon::xkb::{
|
use xkbcommon::xkb::{
|
||||||
self,
|
self,
|
||||||
x11::{get_core_keyboard_device_id, keymap_new_from_device},
|
x11::{
|
||||||
|
get_core_keyboard_device_id, keymap_new_from_device, setup_xkb_extension,
|
||||||
|
SetupXkbExtensionFlags, MIN_MAJOR_XKB_VERSION, MIN_MINOR_XKB_VERSION,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::XkbKeymap;
|
use super::XkbKeymap;
|
||||||
@@ -9,6 +12,17 @@ pub fn get_keymap_x11() -> anyhow::Result<XkbKeymap> {
|
|||||||
let context = xkb::Context::new(xkb::CONTEXT_NO_FLAGS);
|
let context = xkb::Context::new(xkb::CONTEXT_NO_FLAGS);
|
||||||
|
|
||||||
let (conn, _) = xcb::Connection::connect(None)?;
|
let (conn, _) = xcb::Connection::connect(None)?;
|
||||||
|
setup_xkb_extension(
|
||||||
|
&conn,
|
||||||
|
MIN_MAJOR_XKB_VERSION,
|
||||||
|
MIN_MINOR_XKB_VERSION,
|
||||||
|
SetupXkbExtensionFlags::NoFlags,
|
||||||
|
&mut 0,
|
||||||
|
&mut 0,
|
||||||
|
&mut 0,
|
||||||
|
&mut 0,
|
||||||
|
);
|
||||||
|
|
||||||
let device_id = get_core_keyboard_device_id(&conn);
|
let device_id = get_core_keyboard_device_id(&conn);
|
||||||
if device_id == -1 {
|
if device_id == -1 {
|
||||||
return Err(anyhow::anyhow!(
|
return Err(anyhow::anyhow!(
|
||||||
|
|||||||
Reference in New Issue
Block a user