parent
467f3014fb
commit
9d751ec063
1 changed files with 29 additions and 0 deletions
|
|
@ -741,6 +741,7 @@ xcb::atoms_struct! {
|
||||||
wm_protocols => b"WM_PROTOCOLS" only_if_exists = false,
|
wm_protocols => b"WM_PROTOCOLS" only_if_exists = false,
|
||||||
wm_delete_window => b"WM_DELETE_WINDOW" only_if_exists = false,
|
wm_delete_window => b"WM_DELETE_WINDOW" only_if_exists = false,
|
||||||
wm_transient_for => b"WM_TRANSIENT_FOR" only_if_exists = false,
|
wm_transient_for => b"WM_TRANSIENT_FOR" only_if_exists = false,
|
||||||
|
wm_state => b"WM_STATE" only_if_exists = false,
|
||||||
wm_check => b"_NET_SUPPORTING_WM_CHECK" only_if_exists = false,
|
wm_check => b"_NET_SUPPORTING_WM_CHECK" only_if_exists = false,
|
||||||
net_wm_name => b"_NET_WM_NAME" only_if_exists = false,
|
net_wm_name => b"_NET_WM_NAME" only_if_exists = false,
|
||||||
wm_pid => b"_NET_WM_PID" only_if_exists = false,
|
wm_pid => b"_NET_WM_PID" only_if_exists = false,
|
||||||
|
|
@ -867,6 +868,25 @@ impl TryFrom<u32> for SetState {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy)]
|
||||||
|
pub enum WmState {
|
||||||
|
Withdrawn = 0,
|
||||||
|
Normal = 1,
|
||||||
|
Iconic = 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TryFrom<u32> for WmState {
|
||||||
|
type Error = ();
|
||||||
|
fn try_from(value: u32) -> Result<Self, Self::Error> {
|
||||||
|
match value {
|
||||||
|
0 => Ok(Self::Withdrawn),
|
||||||
|
1 => Ok(Self::Normal),
|
||||||
|
3 => Ok(Self::Iconic),
|
||||||
|
_ => Err(()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub struct RealConnection {
|
pub struct RealConnection {
|
||||||
atoms: Atoms,
|
atoms: Atoms,
|
||||||
connection: Rc<xcb::Connection>,
|
connection: Rc<xcb::Connection>,
|
||||||
|
|
@ -985,6 +1005,15 @@ impl XConnection for RealConnection {
|
||||||
}) {
|
}) {
|
||||||
debug!("ChangeProperty failed ({:?}: {:?})", window, e);
|
debug!("ChangeProperty failed ({:?}: {:?})", window, e);
|
||||||
}
|
}
|
||||||
|
if let Err(e) = self.connection.send_and_check_request(&x::ChangeProperty {
|
||||||
|
mode: x::PropMode::Replace,
|
||||||
|
window,
|
||||||
|
property: self.atoms.wm_state,
|
||||||
|
r#type: self.atoms.wm_state,
|
||||||
|
data: &[WmState::Normal as u32, 0],
|
||||||
|
}) {
|
||||||
|
debug!("ChangeProperty failed ({:?}: {:?})", window, e);
|
||||||
|
}
|
||||||
|
|
||||||
if let Some(name) = output_name {
|
if let Some(name) = output_name {
|
||||||
let Some(output) = self.outputs.get(&name).copied() else {
|
let Some(output) = self.outputs.get(&name).copied() else {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue