Add support for 'image-rendering' in geckolib

This commit is contained in:
Ravi Shankar 2016-10-07 17:59:19 +05:30
parent 5fd398ec06
commit 710157c617
2 changed files with 33 additions and 7 deletions

View file

@ -1445,6 +1445,17 @@ fn static_assert() {
</%self:impl_trait>
<%self:impl_trait style_struct_name="InheritedBox"
skip_longhands="image-rendering">
<% render_keyword = Keyword("image-rendering",
"auto optimizequality optimizespeed crispedges") %>
${impl_keyword('image_rendering', 'mImageRendering', render_keyword, need_clone=False)}
</%self:impl_trait>
<%self:impl_trait style_struct_name="InheritedText"
skip_longhands="text-align text-shadow line-height letter-spacing word-spacing">

View file

@ -40,7 +40,7 @@ ${helpers.single_keyword("color-adjust",
"economy exact", products="gecko",
animatable=False)}
<%helpers:longhand name="image-rendering" products="servo" animatable="False">
<%helpers:longhand name="image-rendering" animatable="False">
pub mod computed_value {
use cssparser::ToCss;
use std::fmt;
@ -51,7 +51,12 @@ ${helpers.single_keyword("color-adjust",
pub enum T {
auto,
crispedges,
pixelated,
% if product == "gecko":
optimizequality,
optimizespeed,
% else:
pixelated, // firefox doesn't support it (https://bugzilla.mozilla.org/show_bug.cgi?id=856337)
% endif
}
impl ToCss for T {
@ -59,7 +64,12 @@ ${helpers.single_keyword("color-adjust",
match *self {
T::auto => dest.write_str("auto"),
T::crispedges => dest.write_str("crisp-edges"),
% if product == "gecko":
T::optimizequality => dest.write_str("optimizeQuality"),
T::optimizespeed => dest.write_str("optimizeSpeed"),
% else:
T::pixelated => dest.write_str("pixelated"),
% endif
}
}
}
@ -81,10 +91,15 @@ ${helpers.single_keyword("color-adjust",
match_ignore_ascii_case! {
try!(input.expect_ident()),
"auto" => Ok(computed_value::T::auto),
"optimizespeed" => Ok(computed_value::T::auto),
"optimizequality" => Ok(computed_value::T::auto),
"crisp-edges" => Ok(computed_value::T::crispedges),
% if product == "gecko":
"optimizequality" => Ok(computed_value::T::optimizequality),
"optimizespeed" => Ok(computed_value::T::optimizespeed),
% else:
"optimizequality" => Ok(computed_value::T::auto),
"optimizespeed" => Ok(computed_value::T::auto),
"pixelated" => Ok(computed_value::T::pixelated),
% endif
_ => Err(())
}
}