diff --git a/mozilla/content/html/style/src/nsCSSStyleRule.cpp b/mozilla/content/html/style/src/nsCSSStyleRule.cpp
index c19372058b9..7daa65b4401 100644
--- a/mozilla/content/html/style/src/nsCSSStyleRule.cpp
+++ b/mozilla/content/html/style/src/nsCSSStyleRule.cpp
@@ -33,6 +33,7 @@ static NS_DEFINE_IID(kICSSStyleRuleIID, NS_ICSS_STYLE_RULE_IID);
static NS_DEFINE_IID(kStyleFontSID, NS_STYLEFONT_SID);
static NS_DEFINE_IID(kStyleColorSID, NS_STYLECOLOR_SID);
static NS_DEFINE_IID(kStyleListSID, NS_STYLELIST_SID);
+static NS_DEFINE_IID(kStyleMoleculeSID, NS_STYLEMOLECULE_SID);
static NS_DEFINE_IID(kCSSFontSID, NS_CSS_FONT_SID);
static NS_DEFINE_IID(kCSSColorSID, NS_CSS_COLOR_SID);
@@ -581,6 +582,36 @@ void CSSStyleRuleImpl::MapStyleInto(nsIStyleContext* aContext, nsIPresContext* a
}
}
+ nsCSSMargin* ourMargin;
+ if (NS_OK == mDeclaration->GetData(kCSSMarginSID, (nsCSSStruct**)&ourMargin)) {
+ if (nsnull != ourMargin) {
+ nsStyleMolecule* hack = (nsStyleMolecule*)aContext->GetData(kStyleMoleculeSID);
+
+ // margin
+ if (nsnull != ourMargin->mMargin) {
+ if (ourMargin->mMargin->mLeft.IsLengthUnit()) {
+ hack->margin.left = CalcLength(ourMargin->mMargin->mLeft, font, aPresContext);
+ } else if (ourMargin->mMargin->mLeft.GetUnit() != eCSSUnit_Null) {
+ hack->margin.left = (nscoord)ourMargin->mMargin->mLeft.GetFloatValue();
+ }
+ if (ourMargin->mMargin->mTop.IsLengthUnit()) {
+ hack->margin.top = CalcLength(ourMargin->mMargin->mTop, font, aPresContext);
+ } else if (ourMargin->mMargin->mTop.GetUnit() != eCSSUnit_Null) {
+ hack->margin.top = (nscoord)ourMargin->mMargin->mTop.GetFloatValue();
+ }
+ if (ourMargin->mMargin->mRight.IsLengthUnit()) {
+ hack->margin.right = CalcLength(ourMargin->mMargin->mRight, font, aPresContext);
+ } else if (ourMargin->mMargin->mRight.GetUnit() != eCSSUnit_Null) {
+ hack->margin.right = (nscoord)ourMargin->mMargin->mRight.GetFloatValue();
+ }
+ if (ourMargin->mMargin->mBottom.IsLengthUnit()) {
+ hack->margin.bottom = CalcLength(ourMargin->mMargin->mBottom, font, aPresContext);
+ } else if (ourMargin->mMargin->mBottom.GetUnit() != eCSSUnit_Null) {
+ hack->margin.bottom = (nscoord)ourMargin->mMargin->mBottom.GetFloatValue();
+ }
+ }
+ }
+ }
nsCSSList* ourList;
if (NS_OK == mDeclaration->GetData(kCSSListSID, (nsCSSStruct**)&ourList)) {
diff --git a/mozilla/layout/html/style/src/nsCSSStyleRule.cpp b/mozilla/layout/html/style/src/nsCSSStyleRule.cpp
index c19372058b9..7daa65b4401 100644
--- a/mozilla/layout/html/style/src/nsCSSStyleRule.cpp
+++ b/mozilla/layout/html/style/src/nsCSSStyleRule.cpp
@@ -33,6 +33,7 @@ static NS_DEFINE_IID(kICSSStyleRuleIID, NS_ICSS_STYLE_RULE_IID);
static NS_DEFINE_IID(kStyleFontSID, NS_STYLEFONT_SID);
static NS_DEFINE_IID(kStyleColorSID, NS_STYLECOLOR_SID);
static NS_DEFINE_IID(kStyleListSID, NS_STYLELIST_SID);
+static NS_DEFINE_IID(kStyleMoleculeSID, NS_STYLEMOLECULE_SID);
static NS_DEFINE_IID(kCSSFontSID, NS_CSS_FONT_SID);
static NS_DEFINE_IID(kCSSColorSID, NS_CSS_COLOR_SID);
@@ -581,6 +582,36 @@ void CSSStyleRuleImpl::MapStyleInto(nsIStyleContext* aContext, nsIPresContext* a
}
}
+ nsCSSMargin* ourMargin;
+ if (NS_OK == mDeclaration->GetData(kCSSMarginSID, (nsCSSStruct**)&ourMargin)) {
+ if (nsnull != ourMargin) {
+ nsStyleMolecule* hack = (nsStyleMolecule*)aContext->GetData(kStyleMoleculeSID);
+
+ // margin
+ if (nsnull != ourMargin->mMargin) {
+ if (ourMargin->mMargin->mLeft.IsLengthUnit()) {
+ hack->margin.left = CalcLength(ourMargin->mMargin->mLeft, font, aPresContext);
+ } else if (ourMargin->mMargin->mLeft.GetUnit() != eCSSUnit_Null) {
+ hack->margin.left = (nscoord)ourMargin->mMargin->mLeft.GetFloatValue();
+ }
+ if (ourMargin->mMargin->mTop.IsLengthUnit()) {
+ hack->margin.top = CalcLength(ourMargin->mMargin->mTop, font, aPresContext);
+ } else if (ourMargin->mMargin->mTop.GetUnit() != eCSSUnit_Null) {
+ hack->margin.top = (nscoord)ourMargin->mMargin->mTop.GetFloatValue();
+ }
+ if (ourMargin->mMargin->mRight.IsLengthUnit()) {
+ hack->margin.right = CalcLength(ourMargin->mMargin->mRight, font, aPresContext);
+ } else if (ourMargin->mMargin->mRight.GetUnit() != eCSSUnit_Null) {
+ hack->margin.right = (nscoord)ourMargin->mMargin->mRight.GetFloatValue();
+ }
+ if (ourMargin->mMargin->mBottom.IsLengthUnit()) {
+ hack->margin.bottom = CalcLength(ourMargin->mMargin->mBottom, font, aPresContext);
+ } else if (ourMargin->mMargin->mBottom.GetUnit() != eCSSUnit_Null) {
+ hack->margin.bottom = (nscoord)ourMargin->mMargin->mBottom.GetFloatValue();
+ }
+ }
+ }
+ }
nsCSSList* ourList;
if (NS_OK == mDeclaration->GetData(kCSSListSID, (nsCSSStruct**)&ourList)) {
diff --git a/mozilla/layout/style/nsCSSStyleRule.cpp b/mozilla/layout/style/nsCSSStyleRule.cpp
index c19372058b9..7daa65b4401 100644
--- a/mozilla/layout/style/nsCSSStyleRule.cpp
+++ b/mozilla/layout/style/nsCSSStyleRule.cpp
@@ -33,6 +33,7 @@ static NS_DEFINE_IID(kICSSStyleRuleIID, NS_ICSS_STYLE_RULE_IID);
static NS_DEFINE_IID(kStyleFontSID, NS_STYLEFONT_SID);
static NS_DEFINE_IID(kStyleColorSID, NS_STYLECOLOR_SID);
static NS_DEFINE_IID(kStyleListSID, NS_STYLELIST_SID);
+static NS_DEFINE_IID(kStyleMoleculeSID, NS_STYLEMOLECULE_SID);
static NS_DEFINE_IID(kCSSFontSID, NS_CSS_FONT_SID);
static NS_DEFINE_IID(kCSSColorSID, NS_CSS_COLOR_SID);
@@ -581,6 +582,36 @@ void CSSStyleRuleImpl::MapStyleInto(nsIStyleContext* aContext, nsIPresContext* a
}
}
+ nsCSSMargin* ourMargin;
+ if (NS_OK == mDeclaration->GetData(kCSSMarginSID, (nsCSSStruct**)&ourMargin)) {
+ if (nsnull != ourMargin) {
+ nsStyleMolecule* hack = (nsStyleMolecule*)aContext->GetData(kStyleMoleculeSID);
+
+ // margin
+ if (nsnull != ourMargin->mMargin) {
+ if (ourMargin->mMargin->mLeft.IsLengthUnit()) {
+ hack->margin.left = CalcLength(ourMargin->mMargin->mLeft, font, aPresContext);
+ } else if (ourMargin->mMargin->mLeft.GetUnit() != eCSSUnit_Null) {
+ hack->margin.left = (nscoord)ourMargin->mMargin->mLeft.GetFloatValue();
+ }
+ if (ourMargin->mMargin->mTop.IsLengthUnit()) {
+ hack->margin.top = CalcLength(ourMargin->mMargin->mTop, font, aPresContext);
+ } else if (ourMargin->mMargin->mTop.GetUnit() != eCSSUnit_Null) {
+ hack->margin.top = (nscoord)ourMargin->mMargin->mTop.GetFloatValue();
+ }
+ if (ourMargin->mMargin->mRight.IsLengthUnit()) {
+ hack->margin.right = CalcLength(ourMargin->mMargin->mRight, font, aPresContext);
+ } else if (ourMargin->mMargin->mRight.GetUnit() != eCSSUnit_Null) {
+ hack->margin.right = (nscoord)ourMargin->mMargin->mRight.GetFloatValue();
+ }
+ if (ourMargin->mMargin->mBottom.IsLengthUnit()) {
+ hack->margin.bottom = CalcLength(ourMargin->mMargin->mBottom, font, aPresContext);
+ } else if (ourMargin->mMargin->mBottom.GetUnit() != eCSSUnit_Null) {
+ hack->margin.bottom = (nscoord)ourMargin->mMargin->mBottom.GetFloatValue();
+ }
+ }
+ }
+ }
nsCSSList* ourList;
if (NS_OK == mDeclaration->GetData(kCSSListSID, (nsCSSStruct**)&ourList)) {