blob: ed7c4c3ed171fddc6103d1c0c520ec7ff43b16e5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
use super::*;
use super::events::handle_winit_event;
impl WaylandPlatform {
pub(super) fn accept_clients(&mut self) -> PlatformResult<()> {
if let Some(stream) = self.listener.accept().map_err(err)? {
let client = self.display.handle().insert_client(stream, std::sync::Arc::new(ClientState::default())).map_err(err)?;
self.clients.push(client);
}
Ok(())
}
pub(super) fn pump_winit(&mut self) -> PlatformResult<bool> {
let mut closed = false;
let state = &mut self.state;
let output = &self.output;
let pump = self.winit_events.dispatch_new_events(|event| {
handle_winit_event(state, output, event, &mut closed);
});
if matches!(pump, PumpStatus::Exit(_)) {
closed = true;
}
Ok(closed)
}
}
|