mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +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 {
|
||||
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();
|
||||
// This should be safe because run_forever does, in fact,
|
||||
// run forever. The event loop window target doesn't get
|
||||
|
|
|
@ -80,18 +80,22 @@ impl EventsLoop {
|
|||
}
|
||||
EventLoop::Headless(ref data) => {
|
||||
let &(ref flag, ref condvar) = &**data;
|
||||
let mut event = winit::event::Event::NewEvents(winit::event::StartCause::Init);
|
||||
loop {
|
||||
self.sleep(flag, condvar);
|
||||
let mut control_flow = winit::event_loop::ControlFlow::Poll;
|
||||
|
||||
callback(
|
||||
winit::event::Event::<ServoEvent>::UserEvent(ServoEvent::Awakened),
|
||||
event,
|
||||
None,
|
||||
&mut control_flow
|
||||
);
|
||||
event = winit::event::Event::<ServoEvent>::UserEvent(ServoEvent::Awakened);
|
||||
|
||||
if control_flow != winit::event_loop::ControlFlow::Poll {
|
||||
*flag.lock().unwrap() = false;
|
||||
} else if control_flow == winit::event_loop::ControlFlow::Exit {
|
||||
}
|
||||
|
||||
if control_flow == winit::event_loop::ControlFlow::Exit {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue