aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/style/properties/gecko.mako.rs24
-rw-r--r--components/style/properties/longhand/font.mako.rs17
2 files changed, 37 insertions, 4 deletions
diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs
index 396f38c66a4..a82dcd4a4e0 100644
--- a/components/style/properties/gecko.mako.rs
+++ b/components/style/properties/gecko.mako.rs
@@ -887,7 +887,7 @@ fn static_assert() {
</%self:impl_trait>
<%self:impl_trait style_struct_name="Font"
- skip_longhands="font-family font-size font-weight font-synthesis"
+ skip_longhands="font-family font-size font-size-adjust font-weight font-synthesis"
skip_additionals="*">
pub fn set_font_family(&mut self, v: longhands::font_family::computed_value::T) {
@@ -974,6 +974,28 @@ fn static_assert() {
self.gecko.mFont.synthesis = other.gecko.mFont.synthesis;
}
+ pub fn set_font_size_adjust(&mut self, v: longhands::font_size_adjust::computed_value::T) {
+ use properties::longhands::font_size_adjust::computed_value::T;
+ match v {
+ T::None => self.gecko.mFont.sizeAdjust = -1.0 as f32,
+ T::Number(n) => self.gecko.mFont.sizeAdjust = n.0 as f32,
+ }
+ }
+
+ pub fn copy_font_size_adjust_from(&mut self, other: &Self) {
+ self.gecko.mFont.sizeAdjust = other.gecko.mFont.sizeAdjust;
+ }
+
+ pub fn clone_font_size_adjust(&self) -> longhands::font_size_adjust::computed_value::T {
+ use properties::longhands::font_size_adjust::computed_value::T;
+ use values::specified::Number;
+
+ match self.gecko.mFont.sizeAdjust {
+ -1.0 => T::None,
+ _ => T::Number(Number(self.gecko.mFont.sizeAdjust)),
+ }
+ }
+
</%self:impl_trait>
<% skip_box_longhands= """display overflow-y vertical-align
diff --git a/components/style/properties/longhand/font.mako.rs b/components/style/properties/longhand/font.mako.rs
index 3542ac9832d..eee69ecaf04 100644
--- a/components/style/properties/longhand/font.mako.rs
+++ b/components/style/properties/longhand/font.mako.rs
@@ -353,8 +353,7 @@ ${helpers.single_keyword("font-variant",
</%helpers:longhand>
// https://www.w3.org/TR/css-fonts-3/#font-size-adjust-prop
-// FIXME: This prop should be animatable
-<%helpers:longhand products="none" name="font-size-adjust" animatable="False">
+<%helpers:longhand products="gecko" name="font-size-adjust" animatable="True">
use values::NoViewportPercentage;
use values::computed::ComputedValueAsSpecified;
use values::specified::Number;
@@ -362,7 +361,7 @@ ${helpers.single_keyword("font-variant",
impl ComputedValueAsSpecified for SpecifiedValue {}
impl NoViewportPercentage for SpecifiedValue {}
- #[derive(Clone, Debug, PartialEq)]
+ #[derive(Copy, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
pub enum SpecifiedValue {
None,
@@ -372,6 +371,8 @@ ${helpers.single_keyword("font-variant",
pub mod computed_value {
use style_traits::ToCss;
use std::fmt;
+ use properties::animated_properties::Interpolate;
+ use values::specified::Number;
pub use super::SpecifiedValue as T;
@@ -383,6 +384,16 @@ ${helpers.single_keyword("font-variant",
}
}
}
+
+ impl Interpolate for T {
+ fn interpolate(&self, other: &Self, time: f64) -> Result<Self, ()> {
+ match (*self, *other) {
+ (T::Number(ref number), T::Number(ref other)) =>
+ Ok(T::Number(Number(try!(number.0.interpolate(&other.0, time))))),
+ _ => Err(()),
+ }
+ }
+ }
}
#[inline] pub fn get_initial_value() -> computed_value::T {