From 32f00ef821c895ada5eb5cf7c291d5a0a220eb58 Mon Sep 17 00:00:00 2001 From: Martin Robinson Date: Tue, 8 May 2018 17:05:06 +0200 Subject: Use reference frames explicitly for fixed positioning Now that WebRender gives us reference frame ClipIds, we can use those to implement fixed positioning in Servo. This will allow us to remove the feature from WebRender entirely. --- components/layout/fragment.rs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'components/layout/fragment.rs') diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs index a1c84da3569..38ea9d03b93 100644 --- a/components/layout/fragment.rs +++ b/components/layout/fragment.rs @@ -2474,6 +2474,12 @@ impl Fragment { stacking_relative_border_box.size.height - border_padding.vertical())) } + /// Returns true if this fragment may establish a reference frame. + pub fn can_establish_reference_frame(&self) -> bool { + !self.style().get_box().transform.0.is_empty() || + self.style().get_box().perspective != Perspective::None + } + /// Returns true if this fragment has a filter, transform, or perspective property set. pub fn has_filter_transform_or_perspective(&self) -> bool { !self.style().get_box().transform.0.is_empty() || -- cgit v1.2.3