aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/fragment.rs
diff options
context:
space:
mode:
authorMartin Robinson <mrobinson@igalia.com>2017-08-24 09:37:49 +0200
committerMartin Robinson <mrobinson@igalia.com>2017-09-05 09:10:55 +0200
commitbc455c8a1f5f355323c63e5d1639df2fcaaba5df (patch)
tree8cbe1bfbe8145242736759ed39c1cdd8b42eb683 /components/layout/fragment.rs
parent4725a05bfba0b588d19af8bc5cfe960bda1ea880 (diff)
downloadservo-bc455c8a1f5f355323c63e5d1639df2fcaaba5df.tar.gz
servo-bc455c8a1f5f355323c63e5d1639df2fcaaba5df.zip
Add support for position:sticky
This leverages the position:sticky support in WebRender to bring basic support for position:sticky in Servo. There are still some issues with nested sticky flows as well as a few other corner cases. Tests are imported from WPT and can be removed once we update to the latest version.
Diffstat (limited to 'components/layout/fragment.rs')
-rw-r--r--components/layout/fragment.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs
index 4e0763612ad..8cd37f314ed 100644
--- a/components/layout/fragment.rs
+++ b/components/layout/fragment.rs
@@ -2521,8 +2521,9 @@ impl Fragment {
return true
}
- // Fixed position blocks always create stacking contexts.
- if self.style.get_box().position == position::T::fixed {
+ // Fixed position and sticky position always create stacking contexts.
+ if self.style().get_box().position == position::T::fixed ||
+ self.style().get_box().position == position::T::sticky {
return true
}