diff options
Diffstat (limited to 'components/style/data.rs')
-rw-r--r-- | components/style/data.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/components/style/data.rs b/components/style/data.rs index f6011c81fcb..6f4a34e90ca 100644 --- a/components/style/data.rs +++ b/components/style/data.rs @@ -5,6 +5,7 @@ //! Per-node data used in style calculation. use properties::ComputedValues; +use rule_tree::StrongRuleNode; use selector_impl::PseudoElement; use std::collections::HashMap; use std::hash::BuildHasherDefault; @@ -12,7 +13,7 @@ use std::mem; use std::ops::{Deref, DerefMut}; use std::sync::Arc; -type PseudoStylesInner = HashMap<PseudoElement, Arc<ComputedValues>, +type PseudoStylesInner = HashMap<PseudoElement, (Arc<ComputedValues>, StrongRuleNode), BuildHasherDefault<::fnv::FnvHasher>>; #[derive(Clone, Debug)] pub struct PseudoStyles(PseudoStylesInner); @@ -39,14 +40,18 @@ pub struct ElementStyles { /// The results of CSS styling for this node. pub primary: Arc<ComputedValues>, + /// The rule node representing the last rule matched for this node. + pub rule_node: StrongRuleNode, + /// The results of CSS styling for each pseudo-element (if any). pub pseudos: PseudoStyles, } impl ElementStyles { - pub fn new(primary: Arc<ComputedValues>) -> Self { + pub fn new(primary: Arc<ComputedValues>, rule_node: StrongRuleNode) -> Self { ElementStyles { primary: primary, + rule_node: rule_node, pseudos: PseudoStyles::empty(), } } @@ -185,11 +190,6 @@ impl ElementData { } } - pub fn style_text_node(&mut self, style: Arc<ComputedValues>) { - self.styles = ElementDataStyles::Current(ElementStyles::new(style)); - self.restyle_data = None; - } - pub fn finish_styling(&mut self, styles: ElementStyles) { debug_assert!(self.styles.is_previous()); self.styles = ElementDataStyles::Current(styles); |