aboutsummaryrefslogtreecommitdiffstats
path: root/components/style/data.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/style/data.rs')
-rw-r--r--components/style/data.rs14
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);