diff options
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/document.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 8e05be1fb11..2d0f2ce1c26 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -3587,8 +3587,14 @@ impl Document { self.pending_restyles .borrow_mut() .drain() - .filter(|(k, _)| k.upcast::<Node>().get_flag(NodeFlags::IS_CONNECTED)) - .map(|(k, v)| (k.upcast::<Node>().to_trusted_node_address(), v)) + .filter_map(|(elem, restyle)| { + let node = elem.upcast::<Node>(); + if !node.get_flag(NodeFlags::IS_CONNECTED) { + return None; + } + node.note_dirty_descendants(); + Some((node.to_trusted_node_address(), restyle)) + }) .collect() } } |