mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Add support for the ch unit in calc()
This commit is contained in:
parent
80d471d5cf
commit
b30c4f70f9
1 changed files with 8 additions and 3 deletions
|
@ -424,6 +424,7 @@ pub mod specified {
|
||||||
pub vmax: Option<ViewportPercentageLength>,
|
pub vmax: Option<ViewportPercentageLength>,
|
||||||
pub em: Option<FontRelativeLength>,
|
pub em: Option<FontRelativeLength>,
|
||||||
pub ex: Option<FontRelativeLength>,
|
pub ex: Option<FontRelativeLength>,
|
||||||
|
pub ch: Option<FontRelativeLength>,
|
||||||
pub rem: Option<FontRelativeLength>,
|
pub rem: Option<FontRelativeLength>,
|
||||||
pub percentage: Option<Percentage>,
|
pub percentage: Option<Percentage>,
|
||||||
}
|
}
|
||||||
|
@ -584,6 +585,7 @@ pub mod specified {
|
||||||
let mut vmin = None;
|
let mut vmin = None;
|
||||||
let mut em = None;
|
let mut em = None;
|
||||||
let mut ex = None;
|
let mut ex = None;
|
||||||
|
let mut ch = None;
|
||||||
let mut rem = None;
|
let mut rem = None;
|
||||||
let mut percentage = None;
|
let mut percentage = None;
|
||||||
let mut number = None;
|
let mut number = None;
|
||||||
|
@ -611,6 +613,8 @@ pub mod specified {
|
||||||
em = Some(em.unwrap_or(0.) + val),
|
em = Some(em.unwrap_or(0.) + val),
|
||||||
FontRelativeLength::Ex(val) =>
|
FontRelativeLength::Ex(val) =>
|
||||||
ex = Some(ex.unwrap_or(0.) + val),
|
ex = Some(ex.unwrap_or(0.) + val),
|
||||||
|
FontRelativeLength::Ch(val) =>
|
||||||
|
ch = Some(ch.unwrap_or(0.) + val),
|
||||||
FontRelativeLength::Rem(val) =>
|
FontRelativeLength::Rem(val) =>
|
||||||
rem = Some(rem.unwrap_or(0.) + val),
|
rem = Some(rem.unwrap_or(0.) + val),
|
||||||
},
|
},
|
||||||
|
@ -627,6 +631,7 @@ pub mod specified {
|
||||||
vmin: vmin.map(ViewportPercentageLength::Vmin),
|
vmin: vmin.map(ViewportPercentageLength::Vmin),
|
||||||
em: em.map(FontRelativeLength::Em),
|
em: em.map(FontRelativeLength::Em),
|
||||||
ex: ex.map(FontRelativeLength::Ex),
|
ex: ex.map(FontRelativeLength::Ex),
|
||||||
|
ch: ex.map(FontRelativeLength::Ch),
|
||||||
rem: rem.map(FontRelativeLength::Rem),
|
rem: rem.map(FontRelativeLength::Rem),
|
||||||
percentage: percentage.map(Percentage),
|
percentage: percentage.map(Percentage),
|
||||||
})
|
})
|
||||||
|
@ -668,14 +673,14 @@ pub mod specified {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
let count = count!(em, ex, absolute, rem, vh, vmax, vmin, vw, percentage);
|
let count = count!(em, ex, ch, absolute, rem, vh, vmax, vmin, vw, percentage);
|
||||||
assert!(count > 0);
|
assert!(count > 0);
|
||||||
|
|
||||||
if count > 1 {
|
if count > 1 {
|
||||||
try!(write!(dest, "calc("));
|
try!(write!(dest, "calc("));
|
||||||
}
|
}
|
||||||
|
|
||||||
serialize!(em, ex, absolute, rem, vh, vmax, vmin, vw, percentage);
|
serialize!(em, ex, ch, absolute, rem, vh, vmax, vmin, vw, percentage);
|
||||||
|
|
||||||
if count > 1 {
|
if count > 1 {
|
||||||
try!(write!(dest, ")"));
|
try!(write!(dest, ")"));
|
||||||
|
@ -1329,7 +1334,7 @@ pub mod computed {
|
||||||
val.to_computed_value(context.viewport_size));
|
val.to_computed_value(context.viewport_size));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for val in &[self.em, self.ex, self.rem] {
|
for val in &[self.em, self.ex, self.ch, self.rem] {
|
||||||
if let Some(val) = *val {
|
if let Some(val) = *val {
|
||||||
length = Some(length.unwrap_or(Au(0)) +
|
length = Some(length.unwrap_or(Au(0)) +
|
||||||
val.to_computed_value(context.font_size, context.root_font_size));
|
val.to_computed_value(context.font_size, context.root_font_size));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue