1
0
Fork 0
forked from wry/wry

config: add XWayland enabled option

This commit is contained in:
khyperia 2026-02-17 10:18:20 +01:00 committed by Julian Orth
parent 4ca67772b3
commit 49274fb1c6
13 changed files with 85 additions and 10 deletions

View file

@ -313,6 +313,7 @@ pub struct ScreenlockState {
pub struct XWaylandState {
pub enabled: Cell<bool>,
pub running: Cell<bool>,
pub pidfd: CloneCell<Option<Rc<OwnedFd>>>,
pub handler: RefCell<Option<SpawnedFuture<()>>>,
pub queue: Rc<AsyncQueue<XWaylandEvent>>,
@ -968,6 +969,24 @@ impl State {
}
}
pub fn stop_xwayland(&self) {
if self.xwayland.running.get() {
return;
}
self.xwayland.handler.take();
}
pub fn set_xwayland_enabled(self: &Rc<Self>, enabled: bool) {
if self.xwayland.enabled.replace(enabled) == enabled {
return;
}
if enabled {
self.start_xwayland();
} else {
self.stop_xwayland();
}
}
pub fn next_serial(&self, client: Option<&Client>) -> u64 {
let serial = self.serial.fetch_add(1);
if let Some(client) = client {