зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1914777 - Use cbindgen for border-image-repeat. r=firefox-style-system-reviewers,layout-reviewers,emilio
nsStyleBorder field mBorderImageRepeat replaces fields mBorderImageRepeatH and mBorderImageRepeatY. Differential Revision: https://phabricator.services.mozilla.com/D220074
This commit is contained in:
Родитель
11860bb190
Коммит
3929b2eab0
|
@ -716,9 +716,9 @@ ImgDrawResult nsCSSRendering::CreateWebRenderCommandsForBorderWithStyleBorder(
|
||||||
return ImgDrawResult::NOT_SUPPORTED;
|
return ImgDrawResult::NOT_SUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aStyleBorder.mBorderImageRepeatH ==
|
if (aStyleBorder.mBorderImageRepeat._0 ==
|
||||||
StyleBorderImageRepeatKeyword::Space ||
|
StyleBorderImageRepeatKeyword::Space ||
|
||||||
aStyleBorder.mBorderImageRepeatV ==
|
aStyleBorder.mBorderImageRepeat._1 ==
|
||||||
StyleBorderImageRepeatKeyword::Space) {
|
StyleBorderImageRepeatKeyword::Space) {
|
||||||
return ImgDrawResult::NOT_SUPPORTED;
|
return ImgDrawResult::NOT_SUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3884,7 +3884,7 @@ nsCSSBorderImageRenderer::nsCSSBorderImageRenderer(
|
||||||
"rounding error in width reduction???");
|
"rounding error in width reduction???");
|
||||||
}
|
}
|
||||||
|
|
||||||
mRepeatModeHorizontal = aStyleBorder.mBorderImageRepeatH;
|
mRepeatModeHorizontal = aStyleBorder.mBorderImageRepeat._0;
|
||||||
mRepeatModeVertical = aStyleBorder.mBorderImageRepeatV;
|
mRepeatModeVertical = aStyleBorder.mBorderImageRepeat._1;
|
||||||
mFill = aStyleBorder.mBorderImageSlice.fill;
|
mFill = aStyleBorder.mBorderImageSlice.fill;
|
||||||
}
|
}
|
||||||
|
|
|
@ -459,6 +459,7 @@ cbindgen-types = [
|
||||||
{ gecko = "StyleGenericPositionOrAuto", servo = "crate::values::generics::position::PositionOrAuto" },
|
{ gecko = "StyleGenericPositionOrAuto", servo = "crate::values::generics::position::PositionOrAuto" },
|
||||||
{ gecko = "StyleBackgroundSize", servo = "crate::values::computed::BackgroundSize" },
|
{ gecko = "StyleBackgroundSize", servo = "crate::values::computed::BackgroundSize" },
|
||||||
{ gecko = "StyleGenericBackgroundSize", servo = "crate::values::generics::background::BackgroundSize" },
|
{ gecko = "StyleGenericBackgroundSize", servo = "crate::values::generics::background::BackgroundSize" },
|
||||||
|
{ gecko = "StyleBorderImageRepeat", servo = "crate::values::specified::border::BorderImageRepeat" },
|
||||||
{ gecko = "StyleBorderImageRepeatKeyword", servo = "crate::values::specified::border::BorderImageRepeatKeyword" },
|
{ gecko = "StyleBorderImageRepeatKeyword", servo = "crate::values::specified::border::BorderImageRepeatKeyword" },
|
||||||
{ gecko = "StyleBorderImageSlice", servo = "crate::values::computed::BorderImageSlice" },
|
{ gecko = "StyleBorderImageSlice", servo = "crate::values::computed::BorderImageSlice" },
|
||||||
{ gecko = "StyleBorderSpacing", servo = "crate::values::computed::BorderSpacing" },
|
{ gecko = "StyleBorderSpacing", servo = "crate::values::computed::BorderSpacing" },
|
||||||
|
|
|
@ -397,8 +397,8 @@ nsStyleBorder::nsStyleBorder()
|
||||||
mBorderImageSlice(
|
mBorderImageSlice(
|
||||||
{StyleRectWithAllSides(StyleNumberOrPercentage::Percentage({1.})),
|
{StyleRectWithAllSides(StyleNumberOrPercentage::Percentage({1.})),
|
||||||
false}),
|
false}),
|
||||||
mBorderImageRepeatH(StyleBorderImageRepeatKeyword::Stretch),
|
mBorderImageRepeat{StyleBorderImageRepeatKeyword::Stretch,
|
||||||
mBorderImageRepeatV(StyleBorderImageRepeatKeyword::Stretch),
|
StyleBorderImageRepeatKeyword::Stretch},
|
||||||
mFloatEdge(StyleFloatEdge::ContentBox),
|
mFloatEdge(StyleFloatEdge::ContentBox),
|
||||||
mBoxDecorationBreak(StyleBoxDecorationBreak::Slice),
|
mBoxDecorationBreak(StyleBoxDecorationBreak::Slice),
|
||||||
mBorderTopColor(StyleColor::CurrentColor()),
|
mBorderTopColor(StyleColor::CurrentColor()),
|
||||||
|
@ -421,8 +421,7 @@ nsStyleBorder::nsStyleBorder(const nsStyleBorder& aSrc)
|
||||||
mBorderImageWidth(aSrc.mBorderImageWidth),
|
mBorderImageWidth(aSrc.mBorderImageWidth),
|
||||||
mBorderImageOutset(aSrc.mBorderImageOutset),
|
mBorderImageOutset(aSrc.mBorderImageOutset),
|
||||||
mBorderImageSlice(aSrc.mBorderImageSlice),
|
mBorderImageSlice(aSrc.mBorderImageSlice),
|
||||||
mBorderImageRepeatH(aSrc.mBorderImageRepeatH),
|
mBorderImageRepeat(aSrc.mBorderImageRepeat),
|
||||||
mBorderImageRepeatV(aSrc.mBorderImageRepeatV),
|
|
||||||
mFloatEdge(aSrc.mFloatEdge),
|
mFloatEdge(aSrc.mFloatEdge),
|
||||||
mBoxDecorationBreak(aSrc.mBoxDecorationBreak),
|
mBoxDecorationBreak(aSrc.mBoxDecorationBreak),
|
||||||
mBorderTopColor(aSrc.mBorderTopColor),
|
mBorderTopColor(aSrc.mBorderTopColor),
|
||||||
|
@ -516,8 +515,7 @@ nsChangeHint nsStyleBorder::CalcDifference(
|
||||||
// actually loaded.
|
// actually loaded.
|
||||||
if (!mBorderImageSource.IsNone() || !aNewData.mBorderImageSource.IsNone()) {
|
if (!mBorderImageSource.IsNone() || !aNewData.mBorderImageSource.IsNone()) {
|
||||||
if (mBorderImageSource != aNewData.mBorderImageSource ||
|
if (mBorderImageSource != aNewData.mBorderImageSource ||
|
||||||
mBorderImageRepeatH != aNewData.mBorderImageRepeatH ||
|
mBorderImageRepeat != aNewData.mBorderImageRepeat ||
|
||||||
mBorderImageRepeatV != aNewData.mBorderImageRepeatV ||
|
|
||||||
mBorderImageSlice != aNewData.mBorderImageSlice ||
|
mBorderImageSlice != aNewData.mBorderImageSlice ||
|
||||||
mBorderImageWidth != aNewData.mBorderImageWidth) {
|
mBorderImageWidth != aNewData.mBorderImageWidth) {
|
||||||
return nsChangeHint_RepaintFrame;
|
return nsChangeHint_RepaintFrame;
|
||||||
|
@ -533,8 +531,7 @@ nsChangeHint nsStyleBorder::CalcDifference(
|
||||||
|
|
||||||
// mBorderImage* fields are checked only when border-image is not 'none'.
|
// mBorderImage* fields are checked only when border-image is not 'none'.
|
||||||
if (mBorderImageSource != aNewData.mBorderImageSource ||
|
if (mBorderImageSource != aNewData.mBorderImageSource ||
|
||||||
mBorderImageRepeatH != aNewData.mBorderImageRepeatH ||
|
mBorderImageRepeat != aNewData.mBorderImageRepeat ||
|
||||||
mBorderImageRepeatV != aNewData.mBorderImageRepeatV ||
|
|
||||||
mBorderImageSlice != aNewData.mBorderImageSlice ||
|
mBorderImageSlice != aNewData.mBorderImageSlice ||
|
||||||
mBorderImageWidth != aNewData.mBorderImageWidth) {
|
mBorderImageWidth != aNewData.mBorderImageWidth) {
|
||||||
return nsChangeHint_NeutralChange;
|
return nsChangeHint_NeutralChange;
|
||||||
|
|
|
@ -501,8 +501,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleBorder {
|
||||||
mozilla::StyleBorderImageWidth mBorderImageWidth;
|
mozilla::StyleBorderImageWidth mBorderImageWidth;
|
||||||
mozilla::StyleNonNegativeLengthOrNumberRect mBorderImageOutset;
|
mozilla::StyleNonNegativeLengthOrNumberRect mBorderImageOutset;
|
||||||
mozilla::StyleBorderImageSlice mBorderImageSlice; // factor, percent
|
mozilla::StyleBorderImageSlice mBorderImageSlice; // factor, percent
|
||||||
mozilla::StyleBorderImageRepeatKeyword mBorderImageRepeatH;
|
mozilla::StyleBorderImageRepeat mBorderImageRepeat;
|
||||||
mozilla::StyleBorderImageRepeatKeyword mBorderImageRepeatV;
|
|
||||||
mozilla::StyleFloatEdge mFloatEdge;
|
mozilla::StyleFloatEdge mFloatEdge;
|
||||||
mozilla::StyleBoxDecorationBreak mBoxDecorationBreak;
|
mozilla::StyleBoxDecorationBreak mBoxDecorationBreak;
|
||||||
|
|
||||||
|
|
|
@ -598,7 +598,7 @@ fn static_assert() {
|
||||||
for x in CORNERS]) %>
|
for x in CORNERS]) %>
|
||||||
|
|
||||||
<%self:impl_trait style_struct_name="Border"
|
<%self:impl_trait style_struct_name="Border"
|
||||||
skip_longhands="${skip_border_longhands} border-image-repeat">
|
skip_longhands="${skip_border_longhands}">
|
||||||
% for side in SIDES:
|
% for side in SIDES:
|
||||||
pub fn set_border_${side.ident}_style(&mut self, v: BorderStyle) {
|
pub fn set_border_${side.ident}_style(&mut self, v: BorderStyle) {
|
||||||
self.mBorderStyle[${side.index}] = v;
|
self.mBorderStyle[${side.index}] = v;
|
||||||
|
@ -658,28 +658,6 @@ fn static_assert() {
|
||||||
% for corner in CORNERS:
|
% for corner in CORNERS:
|
||||||
${impl_simple("border_%s_radius" % corner, "mBorderRadius.%s" % corner)}
|
${impl_simple("border_%s_radius" % corner, "mBorderRadius.%s" % corner)}
|
||||||
% endfor
|
% endfor
|
||||||
|
|
||||||
pub fn set_border_image_repeat(&mut self, v: longhands::border_image_repeat::computed_value::T) {
|
|
||||||
% for i, side in enumerate(["H", "V"]):
|
|
||||||
self.mBorderImageRepeat${side} = v.${i};
|
|
||||||
% endfor
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn copy_border_image_repeat_from(&mut self, other: &Self) {
|
|
||||||
self.mBorderImageRepeatH = other.mBorderImageRepeatH;
|
|
||||||
self.mBorderImageRepeatV = other.mBorderImageRepeatV;
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn reset_border_image_repeat(&mut self, other: &Self) {
|
|
||||||
self.copy_border_image_repeat_from(other)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn clone_border_image_repeat(&self) -> longhands::border_image_repeat::computed_value::T {
|
|
||||||
% for side in ["H", "V"]:
|
|
||||||
let servo_${side.lower()} = self.mBorderImageRepeat${side};
|
|
||||||
% endfor
|
|
||||||
longhands::border_image_repeat::computed_value::T(servo_h, servo_v)
|
|
||||||
}
|
|
||||||
</%self:impl_trait>
|
</%self:impl_trait>
|
||||||
|
|
||||||
<% skip_scroll_margin_longhands = " ".join(["scroll-margin-%s" % x.ident for x in SIDES]) %>
|
<% skip_scroll_margin_longhands = " ".join(["scroll-margin-%s" % x.ident for x in SIDES]) %>
|
||||||
|
|
|
@ -327,6 +327,7 @@ pub enum BorderImageRepeatKeyword {
|
||||||
ToResolvedValue,
|
ToResolvedValue,
|
||||||
ToShmem,
|
ToShmem,
|
||||||
)]
|
)]
|
||||||
|
#[repr(C)]
|
||||||
pub struct BorderImageRepeat(pub BorderImageRepeatKeyword, pub BorderImageRepeatKeyword);
|
pub struct BorderImageRepeat(pub BorderImageRepeatKeyword, pub BorderImageRepeatKeyword);
|
||||||
|
|
||||||
impl ToCss for BorderImageRepeat {
|
impl ToCss for BorderImageRepeat {
|
||||||
|
|
|
@ -189,6 +189,7 @@ include = [
|
||||||
"BackgroundSize",
|
"BackgroundSize",
|
||||||
"BaselineSource",
|
"BaselineSource",
|
||||||
"BorderImageSlice",
|
"BorderImageSlice",
|
||||||
|
"BorderImageRepeat",
|
||||||
"BorderImageRepeatKeyword",
|
"BorderImageRepeatKeyword",
|
||||||
"BorderSpacing",
|
"BorderSpacing",
|
||||||
"BorderRadius",
|
"BorderRadius",
|
||||||
|
|
Загрузка…
Ссылка в новой задаче