diff --git a/layout/html/table/src/nsTableOuterFrame.cpp b/layout/html/table/src/nsTableOuterFrame.cpp
index 7a169e38517..2af0623b811 100644
--- a/layout/html/table/src/nsTableOuterFrame.cpp
+++ b/layout/html/table/src/nsTableOuterFrame.cpp
@@ -762,6 +762,7 @@ nsresult nsTableOuterFrame::SizeAndPlaceChildren(const nsSize& aInnerSi
return rv;
}
+
// computes the table width
nscoord nsTableOuterFrame::ComputeAvailableTableWidth(const nsHTMLReflowState& aReflowState)
{
@@ -782,8 +783,15 @@ nscoord nsTableOuterFrame::ComputeAvailableTableWidth(const nsHTMLReflowState& a
break;
case eStyleUnit_Auto:
- maxWidth = aReflowState.availableWidth;
- break;
+ {
+ const nsStyleSpacing* spacing =
+ (const nsStyleSpacing*)mStyleContext->GetStyleData(eStyleStruct_Spacing);
+ nsMargin margin(0,0,0,0);
+ // XXX handle percentages
+ spacing->GetMargin(margin);
+ maxWidth = aReflowState.availableWidth - margin.left - margin.right;
+ break;
+ }
case eStyleUnit_Percent:
maxWidth = (nscoord)((float)aReflowState.availableWidth * position->mWidth.GetPercentValue());
diff --git a/layout/tables/nsTableOuterFrame.cpp b/layout/tables/nsTableOuterFrame.cpp
index 7a169e38517..2af0623b811 100644
--- a/layout/tables/nsTableOuterFrame.cpp
+++ b/layout/tables/nsTableOuterFrame.cpp
@@ -762,6 +762,7 @@ nsresult nsTableOuterFrame::SizeAndPlaceChildren(const nsSize& aInnerSi
return rv;
}
+
// computes the table width
nscoord nsTableOuterFrame::ComputeAvailableTableWidth(const nsHTMLReflowState& aReflowState)
{
@@ -782,8 +783,15 @@ nscoord nsTableOuterFrame::ComputeAvailableTableWidth(const nsHTMLReflowState& a
break;
case eStyleUnit_Auto:
- maxWidth = aReflowState.availableWidth;
- break;
+ {
+ const nsStyleSpacing* spacing =
+ (const nsStyleSpacing*)mStyleContext->GetStyleData(eStyleStruct_Spacing);
+ nsMargin margin(0,0,0,0);
+ // XXX handle percentages
+ spacing->GetMargin(margin);
+ maxWidth = aReflowState.availableWidth - margin.left - margin.right;
+ break;
+ }
case eStyleUnit_Percent:
maxWidth = (nscoord)((float)aReflowState.availableWidth * position->mWidth.GetPercentValue());