Update dependencies
This commit is contained in:
		@@ -2,6 +2,7 @@ pub(crate) mod monitor;
 | 
			
		||||
pub(crate) mod pidfd;
 | 
			
		||||
pub mod screensaver;
 | 
			
		||||
pub mod subservice;
 | 
			
		||||
pub mod xkb_ext;
 | 
			
		||||
 | 
			
		||||
use log::{debug, info};
 | 
			
		||||
use xcb::{x, XidNew};
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ use std::{
 | 
			
		||||
};
 | 
			
		||||
use xcb::{randr, x, xfixes, xinput};
 | 
			
		||||
 | 
			
		||||
use bscreensaver::{screensaver::{BlankerState, CommandHandlers, Screensaver}, subservice::Subservices};
 | 
			
		||||
use bscreensaver::{screensaver::{BlankerState, CommandHandlers, Screensaver}, subservice::Subservices, xkb_ext};
 | 
			
		||||
use bscreensaver_util::{*, settings::Configuration};
 | 
			
		||||
 | 
			
		||||
const BLANKED_ARG: &str = "blanked";
 | 
			
		||||
@@ -71,7 +71,7 @@ fn main() -> anyhow::Result<()> {
 | 
			
		||||
    init_xfixes(&conn)?;
 | 
			
		||||
    init_xinput(&conn)?;
 | 
			
		||||
    init_randr(&conn)?;
 | 
			
		||||
    xkb::x11::setup(&conn, xkb::x11::MIN_MAJOR_XKB_VERSION, xkb::x11::MIN_MINOR_XKB_VERSION, xkb::x11::NO_FLAGS)
 | 
			
		||||
    xkb_ext::x11_setup(&conn, xkb::x11::MIN_MAJOR_XKB_VERSION, xkb::x11::MIN_MINOR_XKB_VERSION)
 | 
			
		||||
        .map_err(|_| anyhow::anyhow!("Failed to initialize XKB extension"))?;
 | 
			
		||||
 | 
			
		||||
    let helper_dir = PathBuf::from(env!("HELPER_DIR"));
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								locker/src/xkb_ext.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								locker/src/xkb_ext.rs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
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()) })
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user