| Index: runtime/observatory/lib/src/elements/helpers/rendering_scheduler.dart
|
| diff --git a/runtime/observatory/lib/src/elements/helpers/rendering_scheduler.dart b/runtime/observatory/lib/src/elements/helpers/rendering_scheduler.dart
|
| index b0f280a12b7b066c5de8e60cd543d69337f37514..e3e81e07c22b06d3b4f8ff2af07fc9624ffbd9fd 100644
|
| --- a/runtime/observatory/lib/src/elements/helpers/rendering_scheduler.dart
|
| +++ b/runtime/observatory/lib/src/elements/helpers/rendering_scheduler.dart
|
| @@ -39,6 +39,8 @@ class RenderingScheduler<T extends Renderable> implements RenderingTask {
|
| /// Queue used for rendering operations.
|
| final RenderingQueue queue;
|
|
|
| + final List<Future> _wait = <Future>[];
|
| +
|
| /// Does the element need a new rendering cycle.
|
| bool get isDirty => _dirty;
|
|
|
| @@ -110,6 +112,7 @@ class RenderingScheduler<T extends Renderable> implements RenderingTask {
|
| void render() {
|
| if (!_enabled) return;
|
| _dirty = false;
|
| + _wait.clear();
|
| element.render();
|
| _renderingScheduled = false;
|
| scheduleNotification();
|
| @@ -123,7 +126,13 @@ class RenderingScheduler<T extends Renderable> implements RenderingTask {
|
| _notificationScheduled = true;
|
| }
|
|
|
| + void waitFor(Iterable<Future> it) {
|
| + _wait.addAll(it);
|
| + }
|
| +
|
| Future _notify() async {
|
| + await Future.wait(_wait);
|
| + _wait.clear();
|
| _onRendered.add(new RenderedEvent<T>(element, _dirty));
|
| _notificationScheduled = false;
|
| }
|
|
|