aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/element.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r--components/script/dom/element.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 3603ab5a24a..3abc82e31a3 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -4307,16 +4307,20 @@ impl Element {
pub(crate) fn set_state(&self, which: ElementState, value: bool) {
let mut state = self.state.get();
- if state.contains(which) == value {
- return;
- }
- let node = self.upcast::<Node>();
- node.owner_doc().element_state_will_change(self);
+ let previous_state = state;
if value {
state.insert(which);
} else {
state.remove(which);
}
+
+ if previous_state == state {
+ // Nothing to do
+ return;
+ }
+
+ let node = self.upcast::<Node>();
+ node.owner_doc().element_state_will_change(self);
self.state.set(state);
}