diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs index 08a7595105b..3b92e207129 100644 --- a/components/style/properties/gecko.mako.rs +++ b/components/style/properties/gecko.mako.rs @@ -378,10 +378,13 @@ impl ${style_struct.gecko_struct_name} { } -<%def name="impl_simple_copy(ident, gecko_ffi_name, *kwargs)"> +<%def name="impl_simple_copy(ident, gecko_ffi_name, on_set=None, *kwargs)"> #[allow(non_snake_case)] pub fn copy_${ident}_from(&mut self, other: &Self) { self.gecko.${gecko_ffi_name} = other.gecko.${gecko_ffi_name}; + % if on_set: + self.${on_set}(); + % endif } @@ -478,7 +481,7 @@ def set_gecko_property(ffi_name, expr): <%def name="impl_keyword(ident, gecko_ffi_name, keyword, need_clone, cast_type='u8', **kwargs)"> <%call expr="impl_keyword_setter(ident, gecko_ffi_name, keyword, cast_type, **kwargs)"> -<%call expr="impl_simple_copy(ident, gecko_ffi_name)"> +<%call expr="impl_simple_copy(ident, gecko_ffi_name, **kwargs)"> %if need_clone: <%call expr="impl_keyword_clone(ident, gecko_ffi_name, keyword, cast_type)"> % endif