зеркало из https://github.com/mozilla/gecko-dev.git
Share IsPaddingZero between nsBlockFrame and nsInlineFrame by putting it in nsLayoutUtils. (Bug 585715) r=bzbarsky a2.0=blocking:beta6+
This commit is contained in:
Родитель
374fca8e4f
Коммит
73db7cd5c4
|
@ -798,6 +798,17 @@ public:
|
|||
(aCBHeight == NS_AUTOHEIGHT && aCoord.HasPercent());
|
||||
}
|
||||
|
||||
static PRBool IsPaddingZero(const nsStyleCoord &aCoord)
|
||||
{
|
||||
return (aCoord.GetUnit() == eStyleUnit_Coord &&
|
||||
aCoord.GetCoordValue() == 0) ||
|
||||
(aCoord.GetUnit() == eStyleUnit_Percent &&
|
||||
aCoord.GetPercentValue() == 0.0) ||
|
||||
(aCoord.IsCalcUnit() &&
|
||||
nsRuleNode::ComputeCoordPercentCalc(aCoord, nscoord_MAX) == 0 &&
|
||||
nsRuleNode::ComputeCoordPercentCalc(aCoord, 0) == 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate the used values for 'width' and 'height' for a replaced element.
|
||||
*
|
||||
|
|
|
@ -2753,18 +2753,6 @@ nsBlockFrame::AttributeChanged(PRInt32 aNameSpaceID,
|
|||
return rv;
|
||||
}
|
||||
|
||||
static inline PRBool
|
||||
IsPaddingZero(const nsStyleCoord &aCoord)
|
||||
{
|
||||
return (aCoord.GetUnit() == eStyleUnit_Coord &&
|
||||
aCoord.GetCoordValue() == 0) ||
|
||||
(aCoord.GetUnit() == eStyleUnit_Percent &&
|
||||
aCoord.GetPercentValue() == 0.0) ||
|
||||
(aCoord.IsCalcUnit() &&
|
||||
nsRuleNode::ComputeCoordPercentCalc(aCoord, nscoord_MAX) == 0 &&
|
||||
nsRuleNode::ComputeCoordPercentCalc(aCoord, 0) == 0);
|
||||
}
|
||||
|
||||
static inline PRBool
|
||||
IsNonAutoNonZeroHeight(const nsStyleCoord& aCoord)
|
||||
{
|
||||
|
@ -2801,8 +2789,8 @@ nsBlockFrame::IsSelfEmpty()
|
|||
const nsStylePadding* padding = GetStylePadding();
|
||||
if (border->GetActualBorderWidth(NS_SIDE_TOP) != 0 ||
|
||||
border->GetActualBorderWidth(NS_SIDE_BOTTOM) != 0 ||
|
||||
!IsPaddingZero(padding->mPadding.GetTop()) ||
|
||||
!IsPaddingZero(padding->mPadding.GetBottom())) {
|
||||
!nsLayoutUtils::IsPaddingZero(padding->mPadding.GetTop()) ||
|
||||
!nsLayoutUtils::IsPaddingZero(padding->mPadding.GetBottom())) {
|
||||
return PR_FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -93,22 +93,11 @@ nsInlineFrame::GetType() const
|
|||
return nsGkAtoms::inlineFrame;
|
||||
}
|
||||
|
||||
static inline PRBool
|
||||
IsPaddingZero(const nsStyleCoord &aCoord)
|
||||
{
|
||||
return (aCoord.GetUnit() == eStyleUnit_Coord &&
|
||||
aCoord.GetCoordValue() == 0) ||
|
||||
(aCoord.GetUnit() == eStyleUnit_Percent &&
|
||||
aCoord.GetPercentValue() == 0.0) ||
|
||||
(aCoord.IsCalcUnit() &&
|
||||
nsRuleNode::ComputeCoordPercentCalc(aCoord, nscoord_MAX) == 0 &&
|
||||
nsRuleNode::ComputeCoordPercentCalc(aCoord, 0) == 0);
|
||||
}
|
||||
|
||||
static inline PRBool
|
||||
IsMarginZero(const nsStyleCoord &aCoord)
|
||||
{
|
||||
return aCoord.GetUnit() == eStyleUnit_Auto || IsPaddingZero(aCoord);
|
||||
return aCoord.GetUnit() == eStyleUnit_Auto ||
|
||||
nsLayoutUtils::IsPaddingZero(aCoord);
|
||||
}
|
||||
|
||||
/* virtual */ PRBool
|
||||
|
@ -129,11 +118,11 @@ nsInlineFrame::IsSelfEmpty()
|
|||
// ZeroEffectiveSpanBox, anymore, so what should this really be?
|
||||
PRBool haveRight =
|
||||
border->GetActualBorderWidth(NS_SIDE_RIGHT) != 0 ||
|
||||
!IsPaddingZero(padding->mPadding.GetRight()) ||
|
||||
!nsLayoutUtils::IsPaddingZero(padding->mPadding.GetRight()) ||
|
||||
!IsMarginZero(margin->mMargin.GetRight());
|
||||
PRBool haveLeft =
|
||||
border->GetActualBorderWidth(NS_SIDE_LEFT) != 0 ||
|
||||
!IsPaddingZero(padding->mPadding.GetLeft()) ||
|
||||
!nsLayoutUtils::IsPaddingZero(padding->mPadding.GetLeft()) ||
|
||||
!IsMarginZero(margin->mMargin.GetLeft());
|
||||
if (haveLeft || haveRight) {
|
||||
if (GetStateBits() & NS_FRAME_IS_SPECIAL) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче