bscreensaver/locker/src/lib.rs

29 lines
856 B
Rust
Raw Normal View History

pub(crate) mod monitor;
pub(crate) mod pidfd;
pub mod screensaver;
pub mod subservice;
use log::{debug, info};
use xcb::{x, XidNew};
use bscreensaver_command::bscreensaver_command_response;
pub fn send_command_reply(conn: &xcb::Connection, ev: &x::ClientMessageEvent, is_success: bool) {
let reply_window = match ev.data() {
x::ClientMessageData::Data32(data) => {
match unsafe { x::Window::new(data[0]) } {
x::WINDOW_NONE => None,
wid => Some(wid),
}
},
_ => None,
};
if let Some(reply_window) = reply_window {
if let Err(err) = bscreensaver_command_response(conn, reply_window, is_success) {
info!("Failed to send command response: {}", err);
}
} else {
debug!("Command sender did not include a reply window");
}
}