mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01:00
Work around absense of winit::event_loop in headless case.
This commit is contained in:
parent
2aa4778f86
commit
84b06ab6d1
2 changed files with 8 additions and 4 deletions
|
@ -69,7 +69,7 @@ impl App {
|
||||||
if let winit::event::Event::NewEvents(winit::event::StartCause::Init) = e {
|
if let winit::event::Event::NewEvents(winit::event::StartCause::Init) = e {
|
||||||
let surfman = window.webrender_surfman();
|
let surfman = window.webrender_surfman();
|
||||||
|
|
||||||
let xr_discovery = if pref!(dom.webxr.glwindow.enabled) {
|
let xr_discovery = if pref!(dom.webxr.glwindow.enabled) && ! opts::get().headless {
|
||||||
let window = window.clone();
|
let window = window.clone();
|
||||||
// This should be safe because run_forever does, in fact,
|
// This should be safe because run_forever does, in fact,
|
||||||
// run forever. The event loop window target doesn't get
|
// run forever. The event loop window target doesn't get
|
||||||
|
|
|
@ -80,18 +80,22 @@ impl EventsLoop {
|
||||||
}
|
}
|
||||||
EventLoop::Headless(ref data) => {
|
EventLoop::Headless(ref data) => {
|
||||||
let &(ref flag, ref condvar) = &**data;
|
let &(ref flag, ref condvar) = &**data;
|
||||||
|
let mut event = winit::event::Event::NewEvents(winit::event::StartCause::Init);
|
||||||
loop {
|
loop {
|
||||||
self.sleep(flag, condvar);
|
self.sleep(flag, condvar);
|
||||||
let mut control_flow = winit::event_loop::ControlFlow::Poll;
|
let mut control_flow = winit::event_loop::ControlFlow::Poll;
|
||||||
|
|
||||||
callback(
|
callback(
|
||||||
winit::event::Event::<ServoEvent>::UserEvent(ServoEvent::Awakened),
|
event,
|
||||||
None,
|
None,
|
||||||
&mut control_flow
|
&mut control_flow
|
||||||
);
|
);
|
||||||
|
event = winit::event::Event::<ServoEvent>::UserEvent(ServoEvent::Awakened);
|
||||||
|
|
||||||
if control_flow != winit::event_loop::ControlFlow::Poll {
|
if control_flow != winit::event_loop::ControlFlow::Poll {
|
||||||
*flag.lock().unwrap() = false;
|
*flag.lock().unwrap() = false;
|
||||||
} else if control_flow == winit::event_loop::ControlFlow::Exit {
|
}
|
||||||
|
|
||||||
|
if control_flow == winit::event_loop::ControlFlow::Exit {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue