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 da3539ef7c0f88bed37e4f4642281f0c63c9bf3f..562d04b4521bef4e8f5e48703715884da5e3df45 100644 |
--- a/runtime/observatory/lib/src/elements/helpers/rendering_scheduler.dart |
+++ b/runtime/observatory/lib/src/elements/helpers/rendering_scheduler.dart |
@@ -75,6 +75,15 @@ class RenderingScheduler<T extends Renderable> implements RenderingTask { |
scheduleRendering(); |
} |
+ /// Checks for modification during attribute set. |
+ /// If value changes a new rendering is scheduled. |
+ /// set attr(T v) => _attr = _r.checkAndReact(_attr, v); |
+ dynamic checkAndReact(dynamic oldValue, dynamic newValue) { |
+ if (oldValue != newValue) dirty(); |
+ else scheduleNotification(); |
+ return newValue; |
+ } |
+ |
/// Schedules a new rendering phase. |
void scheduleRendering() { |
if (_renderingScheduled) return; |