29 lines
957 B
Rust
29 lines
957 B
Rust
use std::mem::MaybeUninit;
|
|
|
|
#[inline]
|
|
pub fn x11_setup(connection: &xcb::Connection, major_version: u16, minor_version: u16) -> Result<(u16, u16, u8, u8), ()> {
|
|
let mut actual_major = MaybeUninit::uninit();
|
|
let mut actual_minor = MaybeUninit::uninit();
|
|
let mut base_event = MaybeUninit::uninit();
|
|
let mut base_error = MaybeUninit::uninit();
|
|
|
|
let ret = unsafe {
|
|
xkbcommon_sys::xkb_x11_setup_xkb_extension(
|
|
connection.get_raw_conn() as *mut _,
|
|
major_version,
|
|
minor_version,
|
|
xkbcommon_sys::XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS,
|
|
actual_major.as_mut_ptr(),
|
|
actual_minor.as_mut_ptr(),
|
|
base_event.as_mut_ptr(),
|
|
base_error.as_mut_ptr()
|
|
)
|
|
};
|
|
|
|
if ret != 1 {
|
|
Err(())
|
|
} else {
|
|
Ok(unsafe { (actual_major.assume_init(), actual_minor.assume_init(), base_event.assume_init(), base_error.assume_init()) })
|
|
}
|
|
}
|