diff --git a/mozilla/content/base/src/nsStyleContext.cpp b/mozilla/content/base/src/nsStyleContext.cpp index 4230b618c24..0be80cfa0d1 100644 --- a/mozilla/content/base/src/nsStyleContext.cpp +++ b/mozilla/content/base/src/nsStyleContext.cpp @@ -276,6 +276,43 @@ void nsStyleSpacing::CalcBorderPaddingFor(const nsIFrame* aFrame, nsMargin& aBor } } +PRBool nsStyleSpacing::GetMargin(nsMargin& aMargin) const +{ + if (mHasCachedMargin) { + aMargin = mCachedMargin; + return PR_TRUE; + } + return PR_FALSE; +} + +PRBool nsStyleSpacing::GetPadding(nsMargin& aPadding) const +{ + if (mHasCachedPadding) { + aPadding = mCachedPadding; + return PR_TRUE; + } + return PR_FALSE; +} + +PRBool nsStyleSpacing::GetBorder(nsMargin& aBorder) const +{ + if (mHasCachedBorder) { + aBorder = mCachedBorder; + return PR_TRUE; + } + return PR_FALSE; +} + +PRBool nsStyleSpacing::GetBorderPadding(nsMargin& aBorderPadding) const +{ + if (mHasCachedPadding && mHasCachedBorder) { + aBorderPadding = mCachedBorderPadding; + return PR_TRUE; + } + return PR_FALSE; +} + + struct StyleSpacingImpl: public nsStyleSpacing { StyleSpacingImpl(void) @@ -291,7 +328,11 @@ void StyleSpacingImpl::ResetFrom(const nsStyleSpacing* aParent, nsIPresContext* // spacing values not inherited mMargin.Reset(); mPadding.Reset(); - mBorder.Reset(); + nsStyleCoord medium(NS_STYLE_BORDER_WIDTH_MEDIUM, eStyleUnit_Enumerated); + mBorder.SetLeft(medium); + mBorder.SetTop(medium); + mBorder.SetRight(medium); + mBorder.SetBottom(medium); mBorderStyle[0] = NS_STYLE_BORDER_STYLE_NONE; mBorderStyle[1] = NS_STYLE_BORDER_STYLE_NONE; mBorderStyle[2] = NS_STYLE_BORDER_STYLE_NONE; diff --git a/mozilla/layout/base/public/nsIStyleContext.h b/mozilla/layout/base/public/nsIStyleContext.h index a6341eb1229..7f0f24c043d 100644 --- a/mozilla/layout/base/public/nsIStyleContext.h +++ b/mozilla/layout/base/public/nsIStyleContext.h @@ -79,6 +79,12 @@ struct nsStyleSpacing: public nsStyleStruct { PRUint8 mBorderStyle[4]; // [reset] See nsStyleConsts.h nscolor mBorderColor[4]; // [reset] + PRBool GetMargin(nsMargin& aMargin) const; + PRBool GetPadding(nsMargin& aPadding) const; + PRBool GetBorder(nsMargin& aBorder) const; + PRBool GetBorderPadding(nsMargin& aBorderPadding) const; + +// XXX these are deprecated methods void CalcMarginFor(const nsIFrame* aFrame, nsMargin& aMargin) const; void CalcPaddingFor(const nsIFrame* aFrame, nsMargin& aPadding) const; void CalcBorderFor(const nsIFrame* aFrame, nsMargin& aBorder) const; diff --git a/mozilla/layout/base/src/nsStyleContext.cpp b/mozilla/layout/base/src/nsStyleContext.cpp index 4230b618c24..0be80cfa0d1 100644 --- a/mozilla/layout/base/src/nsStyleContext.cpp +++ b/mozilla/layout/base/src/nsStyleContext.cpp @@ -276,6 +276,43 @@ void nsStyleSpacing::CalcBorderPaddingFor(const nsIFrame* aFrame, nsMargin& aBor } } +PRBool nsStyleSpacing::GetMargin(nsMargin& aMargin) const +{ + if (mHasCachedMargin) { + aMargin = mCachedMargin; + return PR_TRUE; + } + return PR_FALSE; +} + +PRBool nsStyleSpacing::GetPadding(nsMargin& aPadding) const +{ + if (mHasCachedPadding) { + aPadding = mCachedPadding; + return PR_TRUE; + } + return PR_FALSE; +} + +PRBool nsStyleSpacing::GetBorder(nsMargin& aBorder) const +{ + if (mHasCachedBorder) { + aBorder = mCachedBorder; + return PR_TRUE; + } + return PR_FALSE; +} + +PRBool nsStyleSpacing::GetBorderPadding(nsMargin& aBorderPadding) const +{ + if (mHasCachedPadding && mHasCachedBorder) { + aBorderPadding = mCachedBorderPadding; + return PR_TRUE; + } + return PR_FALSE; +} + + struct StyleSpacingImpl: public nsStyleSpacing { StyleSpacingImpl(void) @@ -291,7 +328,11 @@ void StyleSpacingImpl::ResetFrom(const nsStyleSpacing* aParent, nsIPresContext* // spacing values not inherited mMargin.Reset(); mPadding.Reset(); - mBorder.Reset(); + nsStyleCoord medium(NS_STYLE_BORDER_WIDTH_MEDIUM, eStyleUnit_Enumerated); + mBorder.SetLeft(medium); + mBorder.SetTop(medium); + mBorder.SetRight(medium); + mBorder.SetBottom(medium); mBorderStyle[0] = NS_STYLE_BORDER_STYLE_NONE; mBorderStyle[1] = NS_STYLE_BORDER_STYLE_NONE; mBorderStyle[2] = NS_STYLE_BORDER_STYLE_NONE; diff --git a/mozilla/layout/style/nsStyleContext.cpp b/mozilla/layout/style/nsStyleContext.cpp index 4230b618c24..0be80cfa0d1 100644 --- a/mozilla/layout/style/nsStyleContext.cpp +++ b/mozilla/layout/style/nsStyleContext.cpp @@ -276,6 +276,43 @@ void nsStyleSpacing::CalcBorderPaddingFor(const nsIFrame* aFrame, nsMargin& aBor } } +PRBool nsStyleSpacing::GetMargin(nsMargin& aMargin) const +{ + if (mHasCachedMargin) { + aMargin = mCachedMargin; + return PR_TRUE; + } + return PR_FALSE; +} + +PRBool nsStyleSpacing::GetPadding(nsMargin& aPadding) const +{ + if (mHasCachedPadding) { + aPadding = mCachedPadding; + return PR_TRUE; + } + return PR_FALSE; +} + +PRBool nsStyleSpacing::GetBorder(nsMargin& aBorder) const +{ + if (mHasCachedBorder) { + aBorder = mCachedBorder; + return PR_TRUE; + } + return PR_FALSE; +} + +PRBool nsStyleSpacing::GetBorderPadding(nsMargin& aBorderPadding) const +{ + if (mHasCachedPadding && mHasCachedBorder) { + aBorderPadding = mCachedBorderPadding; + return PR_TRUE; + } + return PR_FALSE; +} + + struct StyleSpacingImpl: public nsStyleSpacing { StyleSpacingImpl(void) @@ -291,7 +328,11 @@ void StyleSpacingImpl::ResetFrom(const nsStyleSpacing* aParent, nsIPresContext* // spacing values not inherited mMargin.Reset(); mPadding.Reset(); - mBorder.Reset(); + nsStyleCoord medium(NS_STYLE_BORDER_WIDTH_MEDIUM, eStyleUnit_Enumerated); + mBorder.SetLeft(medium); + mBorder.SetTop(medium); + mBorder.SetRight(medium); + mBorder.SetBottom(medium); mBorderStyle[0] = NS_STYLE_BORDER_STYLE_NONE; mBorderStyle[1] = NS_STYLE_BORDER_STYLE_NONE; mBorderStyle[2] = NS_STYLE_BORDER_STYLE_NONE;