Skip some parts of image-layer shorthands when they are initial

To make it closer to Gecko's serialization algorithm.
This commit is contained in:
Xidorn Quan 2017-03-15 16:26:51 +11:00
parent de421216ad
commit bd0109f8b9
2 changed files with 22 additions and 35 deletions

View file

@ -158,31 +158,25 @@
try!(write!(dest, " ")); try!(write!(dest, " "));
} }
% for name in "image repeat attachment position_x position_y".split(): try!(image.to_css(dest));
try!(${name}.to_css(dest)); % for name in "repeat attachment position_x position_y".split():
try!(write!(dest, " ")); try!(write!(dest, " "));
try!(${name}.to_css(dest));
% endfor % endfor
try!(write!(dest, "/ ")); if *size != background_size::single_value::get_initial_specified_value() {
try!(size.to_css(dest)); try!(write!(dest, " / "));
try!(write!(dest, " ")); try!(size.to_css(dest));
}
match (origin, clip) { if *origin != Origin::padding_box || *clip != Clip::border_box {
(&Origin::padding_box, &Clip::padding_box) => { try!(write!(dest, " "));
try!(origin.to_css(dest)); try!(origin.to_css(dest));
}, if *clip != From::from(*origin) {
(&Origin::border_box, &Clip::border_box) => {
try!(origin.to_css(dest));
},
(&Origin::content_box, &Clip::content_box) => {
try!(origin.to_css(dest));
},
_ => {
try!(origin.to_css(dest));
try!(write!(dest, " ")); try!(write!(dest, " "));
try!(clip.to_css(dest)); try!(clip.to_css(dest));
} }
}; }
} }
Ok(()) Ok(())

View file

@ -151,26 +151,19 @@
position_x.to_css(dest)?; position_x.to_css(dest)?;
dest.write_str(" ")?; dest.write_str(" ")?;
position_y.to_css(dest)?; position_y.to_css(dest)?;
dest.write_str(" / ")?; if *size != mask_size::single_value::get_initial_specified_value() {
size.to_css(dest)?; dest.write_str(" / ")?;
size.to_css(dest)?;
}
dest.write_str(" ")?; dest.write_str(" ")?;
repeat.to_css(dest)?; repeat.to_css(dest)?;
dest.write_str(" ")?;
match (origin, clip) { if *origin != Origin::border_box || *clip != Clip::border_box {
(&Origin::padding_box, &Clip::padding_box) => { dest.write_str(" ")?;
try!(origin.to_css(dest)); origin.to_css(dest)?;
}, if *clip != From::from(*origin) {
(&Origin::border_box, &Clip::border_box) => { dest.write_str(" ")?;
try!(origin.to_css(dest)); clip.to_css(dest)?;
},
(&Origin::content_box, &Clip::content_box) => {
try!(origin.to_css(dest));
},
_ => {
try!(origin.to_css(dest));
try!(write!(dest, " "));
try!(clip.to_css(dest));
} }
} }