From 18a02f8defd28f92e7ae0e19ab89e6c073771ed5 Mon Sep 17 00:00:00 2001 From: Paul Rouget Date: Wed, 21 Mar 2018 08:01:19 +0100 Subject: [PATCH] loop until we exhausted all the servo events --- ports/servo/main.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/ports/servo/main.rs b/ports/servo/main.rs index 8fa036a6658..5401ef9130d 100644 --- a/ports/servo/main.rs +++ b/ports/servo/main.rs @@ -187,7 +187,6 @@ fn main() { window.run(|| { let win_events = window.get_events(); - let servo_events = servo.get_events(); // FIXME: this could be handled by Servo. We don't need // a repaint_synchronously function exposed. @@ -196,14 +195,21 @@ fn main() { _ => false, }); - browser.handle_servo_events(servo_events); browser.handle_window_events(win_events); - if browser.shutdown_requested() { - return true; + let mut servo_events = servo.get_events(); + loop { + browser.handle_servo_events(servo_events); + servo.handle_events(browser.get_events()); + if browser.shutdown_requested() { + return true; + } + servo_events = servo.get_events(); + if servo_events.is_empty() { + break; + } } - servo.handle_events(browser.get_events()); if need_resize { servo.repaint_synchronously(); }