diff --git a/core/src/ui/render_state.rs b/core/src/ui/render_state.rs
index 57e79a6..ad8afab 100644
--- a/core/src/ui/render_state.rs
+++ b/core/src/ui/render_state.rs
@@ -52,7 +52,7 @@ impl UiRenderState {
);
}
let root = root.into();
- if self.root_changed(root) || self.resized {
+ if self.needs_full_redraw(root) {
self.redraw_all(root, rsc);
self.old_root = root.map(|r| r.id());
self.resized = false;
@@ -218,12 +218,17 @@ impl UiRenderState {
root.into().map(|r| r.id()) != self.old_root
}
+ // Scheduling and drawing must use the same full-redraw predicate.
+ fn needs_full_redraw<'a>(&self, root: impl Into