mirror of
https://github.com/servo/servo.git
synced 2025-06-23 08:34:42 +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
|
||||
-moz-binding page-break-before page-break-after
|
||||
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}">
|
||||
|
||||
// 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')}
|
||||
|
||||
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)">
|
||||
<%
|
||||
pattern = None
|
||||
|
|
|
@ -1049,6 +1049,12 @@ ${helpers.single_keyword("animation-fill-mode",
|
|||
</%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"
|
||||
animatable="True"
|
||||
|
|
|
@ -20,6 +20,7 @@ pub use super::specified::{Angle, BorderStyle, GridLine, Time, UrlOrNone};
|
|||
pub use super::specified::url::UrlExtraData;
|
||||
pub use self::length::{CalcLengthOrPercentage, Length, LengthOrNumber, LengthOrPercentage, LengthOrPercentageOrAuto};
|
||||
pub use self::length::{LengthOrPercentageOrAutoOrContent, LengthOrPercentageOrNone, LengthOrNone};
|
||||
pub use self::position::Position;
|
||||
|
||||
pub mod basic_shape;
|
||||
pub mod image;
|
||||
|
|
|
@ -19,6 +19,16 @@ pub struct Position {
|
|||
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 {
|
||||
fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
|
||||
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::{Percentage, LengthOrNone, LengthOrNumber, LengthOrPercentage, LengthOrPercentageOrAuto};
|
||||
pub use self::length::{LengthOrPercentageOrNone, LengthOrPercentageOrAutoOrContent, NoCalcLength, CalcUnit};
|
||||
pub use self::position::{HorizontalPosition, Position, VerticalPosition};
|
||||
|
||||
pub mod basic_shape;
|
||||
pub mod grid;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue