aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/element.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2015-10-29 00:24:53 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2015-10-29 00:24:53 +0530
commit285e29c06637f31a8b8a27c2e454468717924ebd (patch)
treec02635199abdc3297af969f69fab1ae84362db43 /components/script/dom/element.rs
parent30ce2a84c162915f71873e9e20955e12709b39ae (diff)
parent069c40f788ef69ee5523c1f88c898c849080c594 (diff)
downloadservo-285e29c06637f31a8b8a27c2e454468717924ebd.tar.gz
servo-285e29c06637f31a8b8a27c2e454468717924ebd.zip
Auto merge of #8098 - bholley:dirty_from_layout, r=jdm
Track event state changes on Document and do the dirtying from layout This is a first step in fixing #6942. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8098) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r--components/script/dom/element.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 1be58932305..0bdca0714a7 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -1836,6 +1836,9 @@ impl Element {
fn set_state(&self, which: EventState, value: bool) {
let mut state = self.event_state.get();
+ if state.contains(which) == value {
+ return
+ }
match value {
true => state.insert(which),
false => state.remove(which),
@@ -1843,7 +1846,7 @@ impl Element {
self.event_state.set(state);
let node = self.upcast::<Node>();
- node.dirty(NodeDamage::NodeStyleDamaged);
+ node.owner_doc().record_event_state_change(self, which);
}
pub fn get_active_state(&self) -> bool {