servoshell: fix unwrap None during RedrawRequested (#30360)

This commit is contained in:
Delan Azabani 2023-09-14 18:13:19 +08:00 committed by GitHub
parent 988e05a68b
commit 2076b5d789
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -173,29 +173,6 @@ impl App {
app.windows.insert(window.id(), window.clone());
app.servo = Some(servo);
},
winit::event::Event::RedrawRequested(_) => {
// We need to redraw the window for some reason.
trace!("RedrawRequested");
// WARNING: do not defer painting or presenting to some later tick of the event
// loop or servoshell may become unresponsive! (servo#30312)
if need_recomposite {
trace!("need_recomposite");
app.servo.as_mut().unwrap().recomposite();
}
if let Some(mut minibrowser) = app.minibrowser() {
minibrowser.update(window.winit_window().unwrap(), "RedrawRequested");
minibrowser.paint(window.winit_window().unwrap());
}
if external_present {
app.servo.as_mut().unwrap().present();
}
// By default, the next RedrawRequested event will need to recomposite.
need_recomposite = true;
},
_ => {},
}
@ -205,6 +182,28 @@ impl App {
return;
}
if let winit::event::Event::RedrawRequested(_) = e {
// We need to redraw the window for some reason.
trace!("RedrawRequested");
// WARNING: do not defer painting or presenting to some later tick of the event
// loop or servoshell may become unresponsive! (servo#30312)
if need_recomposite {
trace!("need_recomposite");
app.servo.as_mut().unwrap().recomposite();
}
if let Some(mut minibrowser) = app.minibrowser() {
minibrowser.update(window.winit_window().unwrap(), "RedrawRequested");
minibrowser.paint(window.winit_window().unwrap());
}
if external_present {
app.servo.as_mut().unwrap().present();
}
// By default, the next RedrawRequested event will need to recomposite.
need_recomposite = true;
}
// Handle the event
let mut consumed = false;
if let Some(mut minibrowser) = app.minibrowser() {