aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/document.rs
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2015-11-21 15:44:16 -0800
committerEli Friedman <eli.friedman@gmail.com>2015-11-21 15:49:58 -0800
commit31c013858ff25e14f6984d4caa4d696d6aea33f8 (patch)
tree91bf66a562cd60c35229c917b5f50b510ca76977 /components/script/dom/document.rs
parentea690a2dff64d1cb4eb668473d62f1bbcb19f7c8 (diff)
downloadservo-31c013858ff25e14f6984d4caa4d696d6aea33f8.tar.gz
servo-31c013858ff25e14f6984d4caa4d696d6aea33f8.zip
Make the needs_reflow method actually work correctly.
The document node is always dirty because layout never clears the bit; instead, check the dirty bit of the root element.
Diffstat (limited to 'components/script/dom/document.rs')
-rw-r--r--components/script/dom/document.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 34a7846b543..1fda0761c66 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -329,9 +329,16 @@ impl Document {
}
pub fn needs_reflow(&self) -> bool {
- self.GetDocumentElement().is_some() &&
- (self.upcast::<Node>().get_has_dirty_descendants() ||
- !self.modified_elements.borrow().is_empty())
+ // FIXME: This should check the dirty bit on the document,
+ // not the document element. Needs some layout changes to make
+ // that workable.
+ match self.GetDocumentElement() {
+ Some(root) => {
+ root.upcast::<Node>().get_has_dirty_descendants() ||
+ !self.modified_elements.borrow().is_empty()
+ }
+ None => false,
+ }
}
/// Returns the first `base` element in the DOM that has an `href` attribute.