diff options
Diffstat (limited to 'components/style/selector_matching.rs')
-rw-r--r-- | components/style/selector_matching.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/components/style/selector_matching.rs b/components/style/selector_matching.rs index 211ae3dbe56..a9c0839f5e8 100644 --- a/components/style/selector_matching.rs +++ b/components/style/selector_matching.rs @@ -17,6 +17,7 @@ use media_queries::Device; use node::TElementAttributes; use properties::{PropertyDeclaration, PropertyDeclarationBlock}; use stylesheets::{Stylesheet, CSSRuleIteratorExt, Origin}; +use viewport::{ViewportConstraints, ViewportRuleCascade}; pub type DeclarationBlock = GenericDeclarationBlock<Vec<PropertyDeclaration>>; @@ -69,6 +70,14 @@ impl Stylist { stylist } + pub fn constrain_viewport(&self) -> Option<ViewportConstraints> { + let cascaded_rule = self.stylesheets.iter() + .flat_map(|s| s.effective_rules(&self.device).viewport()) + .cascade(); + + ViewportConstraints::maybe_new(self.device.viewport_size, &cascaded_rule) + } + pub fn update(&mut self) -> bool { if self.is_dirty { self.element_map = PerPseudoElementSelectorMap::new(); |