mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
servoshell: fix unwrap None during RedrawRequested (#30360)
This commit is contained in:
parent
988e05a68b
commit
2076b5d789
1 changed files with 22 additions and 23 deletions
|
@ -173,29 +173,6 @@ impl App {
|
||||||
app.windows.insert(window.id(), window.clone());
|
app.windows.insert(window.id(), window.clone());
|
||||||
app.servo = Some(servo);
|
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;
|
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
|
// Handle the event
|
||||||
let mut consumed = false;
|
let mut consumed = false;
|
||||||
if let Some(mut minibrowser) = app.minibrowser() {
|
if let Some(mut minibrowser) = app.minibrowser() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue