diff --git a/src/backends/x.rs b/src/backends/x.rs index 4c34f267..47545113 100644 --- a/src/backends/x.rs +++ b/src/backends/x.rs @@ -161,7 +161,7 @@ pub async fn create(state: &Rc) -> Result, XBackendError> { { return Err(XBackendError::EnableXkb(e)); } - let root = c.setup().screens[0].root; + let root = c.root_window(); let drm = { let res = c .call(&Dri3Open { @@ -215,7 +215,7 @@ pub async fn create(state: &Rc) -> Result, XBackendError> { }; { let se = XiSelectEvents { - window: c.setup().screens[0].root, + window: c.root_window(), masks: Cow::Borrowed(&[XiEventMask { deviceid: INPUT_DEVICE_ALL, mask: &[XI_EVENT_MASK_HIERARCHY], diff --git a/src/xcon.rs b/src/xcon.rs index 3a4115f1..d12826d2 100644 --- a/src/xcon.rs +++ b/src/xcon.rs @@ -157,7 +157,7 @@ pub struct Xcon { data: Rc, outgoing: Cell>>, incoming: Cell>>, - setup: Reply>, + root_window: u32, extensions: Rc, xid_next: Cell, @@ -371,8 +371,8 @@ impl> Future for AsyncReply { } impl Xcon { - pub fn setup(&self) -> &Setup { - self.setup.get() + pub fn root_window(&self) -> u32 { + self.root_window } pub async fn event(&self) -> Event { @@ -510,11 +510,7 @@ impl Xcon { xid_next: Cell::new(setup.resource_id_base), xid_inc: 1 << setup.resource_id_mask.trailing_zeros(), xid_max: setup.resource_id_mask | setup.resource_id_base, - setup: Reply { - socket: data.clone(), - t: unsafe { mem::transmute(setup) }, - buf, - }, + root_window: setup.screens[0].root, data, }); slf.data.xorg.set(Rc::downgrade(&slf)); @@ -665,7 +661,7 @@ impl Xcon { let create_pixmap = self.call(&CreatePixmap { depth: 32, pid: pixmap, - drawable: self.setup.get().screens[0].root, + drawable: self.root_window, width: width as _, height: height as _, }); diff --git a/src/xwayland/xwm.rs b/src/xwayland/xwm.rs index f05fcb54..5c65d28d 100644 --- a/src/xwayland/xwm.rs +++ b/src/xwayland/xwm.rs @@ -304,7 +304,7 @@ impl Wm { nf.insert(atoms._NET_WM_WINDOW_TYPE_UTILITY); nf }; - let root = c.setup().screens[0].root; + let root = c.root_window(); { let events = 0 | EVENT_MASK_SUBSTRUCTURE_NOTIFY