mirror of
https://github.com/servo/servo.git
synced 2025-08-05 05:30:08 +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.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() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue