From 7f01857a35f2395519b93f47e594d567f1eaaa21 Mon Sep 17 00:00:00 2001 From: Marco Castelluccio Date: Tue, 1 Oct 2019 00:38:19 +0000 Subject: [PATCH] servo: Merge #13570 - Add support for 'font-stretch' in geckolib (from Wafflespeanut:font_stretch); r=Manishearth --- - [x] `./mach build-geckolib` does not report any errors - [x] `./mach test-tidy` does not report any errors r? Manishearth Source-Repo: https://github.com/servo/servo Source-Revision: b772f4335ee82007afe26fa58dd94d097d6135ba UltraBlame original commit: dcead809bfd4d427052d40f9cd3f21bfe7844980 --- .../components/style/properties/gecko.mako.rs | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/servo/components/style/properties/gecko.mako.rs b/servo/components/style/properties/gecko.mako.rs index 9b197d650b7b3..e8f45ce0006e2 100644 --- a/servo/components/style/properties/gecko.mako.rs +++ b/servo/components/style/properties/gecko.mako.rs @@ -447,7 +447,7 @@ impl Debug for ${style_struct.gecko_struct_name} { # These are currently being shuffled to a different style struct on the gecko side. force_stub += ["backface-visibility", "transform-box", "transform-style"] # These live in an nsFont member in Gecko. Should be straightforward to do manually. - force_stub += ["font-kerning", "font-stretch", "font-variant"] + force_stub += ["font-kerning", "font-variant"] # These have unusual representations in gecko. force_stub += ["list-style-type", "text-overflow"] # In a nsTArray, have to be done manually, but probably not too much work @@ -739,7 +739,7 @@ fn static_assert() { <%self:impl_trait style_struct_name="Font" - skip_longhands="font-family font-style font-size font-weight" + skip_longhands="font-family font-stretch font-style font-size font-weight" skip_additionals="*"> pub fn set_font_family(&mut self, v: longhands::font_family::computed_value::T) { @@ -790,6 +790,24 @@ fn static_assert() { Au(self.gecko.mSize) } + pub fn set_font_stretch(&mut self, v: longhands::font_stretch::computed_value::T) { + use computed_values::font_stretch::T; + + self.gecko.mFont.stretch = match v { + T::normal => structs::NS_FONT_STRETCH_NORMAL as i16, + T::ultra_condensed => structs::NS_FONT_STRETCH_ULTRA_CONDENSED as i16, + T::extra_condensed => structs::NS_FONT_STRETCH_EXTRA_CONDENSED as i16, + T::condensed => structs::NS_FONT_STRETCH_CONDENSED as i16, + T::semi_condensed => structs::NS_FONT_STRETCH_SEMI_CONDENSED as i16, + T::semi_expanded => structs::NS_FONT_STRETCH_SEMI_EXPANDED as i16, + T::expanded => structs::NS_FONT_STRETCH_EXPANDED as i16, + T::extra_expanded => structs::NS_FONT_STRETCH_EXTRA_EXPANDED as i16, + T::ultra_expanded => structs::NS_FONT_STRETCH_ULTRA_EXPANDED as i16, + }; + } + + ${impl_simple_copy('font_stretch', 'mFont.stretch')} + pub fn set_font_weight(&mut self, v: longhands::font_weight::computed_value::T) { self.gecko.mFont.weight = v as u16; }