diff options
author | Martin Robinson <mrobinson@igalia.com> | 2018-05-08 17:05:06 +0200 |
---|---|---|
committer | Martin Robinson <mrobinson@igalia.com> | 2018-06-04 13:52:08 +0200 |
commit | 32f00ef821c895ada5eb5cf7c291d5a0a220eb58 (patch) | |
tree | 625701ace2e5f710ba890181975fe83e52b919b1 /components/layout/fragment.rs | |
parent | 11a89bcc47c73701d8809cf33163a1f61d792b17 (diff) | |
download | servo-32f00ef821c895ada5eb5cf7c291d5a0a220eb58.tar.gz servo-32f00ef821c895ada5eb5cf7c291d5a0a220eb58.zip |
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.
Diffstat (limited to 'components/layout/fragment.rs')
-rw-r--r-- | components/layout/fragment.rs | 6 |
1 files changed, 6 insertions, 0 deletions
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() || |