@@ -724,6 +724,7 @@ pub(crate) struct DeferredDraw {
parent_node: DispatchNodeId,
element_id_stack: SmallVec<[ElementId; 32]>,
text_style_stack: Vec<TextStyleRefinement>,
+ rem_size: Pixels,
element: Option<AnyElement>,
absolute_offset: Point<Pixels>,
prepaint_range: Range<PrepaintStateIndex>,
@@ -2408,8 +2409,13 @@ impl Window {
let prepaint_start = self.prepaint_index();
if let Some(element) = deferred_draw.element.as_mut() {
self.with_rendered_view(deferred_draw.current_view, |window| {
- window.with_absolute_element_offset(deferred_draw.absolute_offset, |window| {
- element.prepaint(window, cx)
+ window.with_rem_size(Some(deferred_draw.rem_size), |window| {
+ window.with_absolute_element_offset(
+ deferred_draw.absolute_offset,
+ |window| {
+ element.prepaint(window, cx);
+ },
+ );
});
})
} else {
@@ -2443,7 +2449,9 @@ impl Window {
let paint_start = self.paint_index();
if let Some(element) = deferred_draw.element.as_mut() {
self.with_rendered_view(deferred_draw.current_view, |window| {
- element.paint(window, cx);
+ window.with_rem_size(Some(deferred_draw.rem_size), |window| {
+ element.paint(window, cx);
+ })
})
} else {
self.reuse_paint(deferred_draw.paint_range.clone());
@@ -2506,6 +2514,7 @@ impl Window {
parent_node: reused_subtree.refresh_node_id(deferred_draw.parent_node),
element_id_stack: deferred_draw.element_id_stack.clone(),
text_style_stack: deferred_draw.text_style_stack.clone(),
+ rem_size: deferred_draw.rem_size,
priority: deferred_draw.priority,
element: None,
absolute_offset: deferred_draw.absolute_offset,
@@ -3007,6 +3016,7 @@ impl Window {
parent_node,
element_id_stack: self.element_id_stack.clone(),
text_style_stack: self.text_style_stack.clone(),
+ rem_size: self.rem_size(),
priority,
element: Some(element),
absolute_offset,