mirror of
https://github.com/servo/servo.git
synced 2025-06-23 16:44:33 +01:00
stylo: Implement scroll-snap-destination
MozReview-Commit-ID: 6mr4ktfeEGT
This commit is contained in:
parent
3b59dbadee
commit
a095565a8c
5 changed files with 26 additions and 1 deletions
|
@ -1169,7 +1169,7 @@ fn static_assert() {
|
||||||
animation-iteration-count animation-timing-function
|
animation-iteration-count animation-timing-function
|
||||||
-moz-binding page-break-before page-break-after
|
-moz-binding page-break-before page-break-after
|
||||||
scroll-snap-points-x scroll-snap-points-y transform
|
scroll-snap-points-x scroll-snap-points-y transform
|
||||||
scroll-snap-type-y perspective-origin transform-origin""" %>
|
scroll-snap-type-y scroll-snap-destination perspective-origin transform-origin""" %>
|
||||||
<%self:impl_trait style_struct_name="Box" skip_longhands="${skip_box_longhands}">
|
<%self:impl_trait style_struct_name="Box" skip_longhands="${skip_box_longhands}">
|
||||||
|
|
||||||
// We manually-implement the |display| property until we get general
|
// We manually-implement the |display| property until we get general
|
||||||
|
@ -1340,6 +1340,13 @@ fn static_assert() {
|
||||||
|
|
||||||
${impl_coord_copy('scroll_snap_points_y', 'mScrollSnapPointsY')}
|
${impl_coord_copy('scroll_snap_points_y', 'mScrollSnapPointsY')}
|
||||||
|
|
||||||
|
pub fn set_scroll_snap_destination(&mut self, v: longhands::scroll_snap_destination::computed_value::T) {
|
||||||
|
self.gecko.mScrollSnapDestination.mXPosition = v.horizontal.into();
|
||||||
|
self.gecko.mScrollSnapDestination.mYPosition = v.vertical.into();
|
||||||
|
}
|
||||||
|
|
||||||
|
${impl_simple_copy('scroll_snap_destination', 'mScrollSnapDestination')}
|
||||||
|
|
||||||
<%def name="transform_function_arm(name, keyword, items)">
|
<%def name="transform_function_arm(name, keyword, items)">
|
||||||
<%
|
<%
|
||||||
pattern = None
|
pattern = None
|
||||||
|
|
|
@ -1049,6 +1049,12 @@ ${helpers.single_keyword("animation-fill-mode",
|
||||||
</%helpers:longhand>
|
</%helpers:longhand>
|
||||||
|
|
||||||
|
|
||||||
|
${helpers.predefined_type("scroll-snap-destination",
|
||||||
|
"Position",
|
||||||
|
"computed::Position::zero()",
|
||||||
|
products="gecko",
|
||||||
|
spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-snap-destination)",
|
||||||
|
animatable=False)}
|
||||||
|
|
||||||
<%helpers:longhand name="transform" products="gecko servo" extra_prefixes="webkit"
|
<%helpers:longhand name="transform" products="gecko servo" extra_prefixes="webkit"
|
||||||
animatable="True"
|
animatable="True"
|
||||||
|
|
|
@ -20,6 +20,7 @@ pub use super::specified::{Angle, BorderStyle, GridLine, Time, UrlOrNone};
|
||||||
pub use super::specified::url::UrlExtraData;
|
pub use super::specified::url::UrlExtraData;
|
||||||
pub use self::length::{CalcLengthOrPercentage, Length, LengthOrNumber, LengthOrPercentage, LengthOrPercentageOrAuto};
|
pub use self::length::{CalcLengthOrPercentage, Length, LengthOrNumber, LengthOrPercentage, LengthOrPercentageOrAuto};
|
||||||
pub use self::length::{LengthOrPercentageOrAutoOrContent, LengthOrPercentageOrNone, LengthOrNone};
|
pub use self::length::{LengthOrPercentageOrAutoOrContent, LengthOrPercentageOrNone, LengthOrNone};
|
||||||
|
pub use self::position::Position;
|
||||||
|
|
||||||
pub mod basic_shape;
|
pub mod basic_shape;
|
||||||
pub mod image;
|
pub mod image;
|
||||||
|
|
|
@ -19,6 +19,16 @@ pub struct Position {
|
||||||
pub vertical: LengthOrPercentage,
|
pub vertical: LengthOrPercentage,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Position {
|
||||||
|
/// Construct a position at (0, 0)
|
||||||
|
pub fn zero() -> Self {
|
||||||
|
Position {
|
||||||
|
horizontal: LengthOrPercentage::zero(),
|
||||||
|
vertical: LengthOrPercentage::zero(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl ToCss for Position {
|
impl ToCss for Position {
|
||||||
fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
|
fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
|
||||||
try!(self.horizontal.to_css(dest));
|
try!(self.horizontal.to_css(dest));
|
||||||
|
|
|
@ -27,6 +27,7 @@ pub use self::image::{SizeKeyword, VerticalDirection};
|
||||||
pub use self::length::{FontRelativeLength, ViewportPercentageLength, CharacterWidth, Length, CalcLengthOrPercentage};
|
pub use self::length::{FontRelativeLength, ViewportPercentageLength, CharacterWidth, Length, CalcLengthOrPercentage};
|
||||||
pub use self::length::{Percentage, LengthOrNone, LengthOrNumber, LengthOrPercentage, LengthOrPercentageOrAuto};
|
pub use self::length::{Percentage, LengthOrNone, LengthOrNumber, LengthOrPercentage, LengthOrPercentageOrAuto};
|
||||||
pub use self::length::{LengthOrPercentageOrNone, LengthOrPercentageOrAutoOrContent, NoCalcLength, CalcUnit};
|
pub use self::length::{LengthOrPercentageOrNone, LengthOrPercentageOrAutoOrContent, NoCalcLength, CalcUnit};
|
||||||
|
pub use self::position::{HorizontalPosition, Position, VerticalPosition};
|
||||||
|
|
||||||
pub mod basic_shape;
|
pub mod basic_shape;
|
||||||
pub mod grid;
|
pub mod grid;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue