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());