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"); } }