diff --git a/mozilla/layout/html/table/src/BasicTableLayoutStrategy.cpp b/mozilla/layout/html/table/src/BasicTableLayoutStrategy.cpp index f8a10678494..d548b55ce32 100644 --- a/mozilla/layout/html/table/src/BasicTableLayoutStrategy.cpp +++ b/mozilla/layout/html/table/src/BasicTableLayoutStrategy.cpp @@ -149,18 +149,15 @@ BasicTableLayoutStrategy::BalanceColumnWidths(nsIStyleContext* aTableSty if (!tableIsAutoWidth && (specifiedTableWidth > 0)) { maxWidth = PR_MIN(specifiedTableWidth, aMaxWidthIn); // specifiedWidth usually == aMaxWidthIn for fixed table } - // reduce the maxWidth by border and padding in some cases, since we will be dealing with content width - if (!tableIsAutoWidth && (maxWidth != NS_UNCONSTRAINEDSIZE)) { - const nsStylePosition* position; - mTableFrame->GetStyleData(eStyleStruct_Position, ((const nsStyleStruct *&)position)); - if (eStyleUnit_Percent != position->mWidth.GetUnit()) { - const nsStyleSpacing* spacing; - mTableFrame->GetStyleData(eStyleStruct_Spacing, (const nsStyleStruct *&)spacing); - nsMargin borderPadding; - spacing->CalcBorderPaddingFor(mTableFrame, borderPadding); - maxWidth -= borderPadding.left + borderPadding.right; - maxWidth = PR_MAX(0, maxWidth); - } + // reduce the maxWidth by border and padding, since we will be dealing with content width + // XXX should this be done in aMaxWidthIn by the caller? + if (maxWidth != NS_UNCONSTRAINEDSIZE) { + const nsStyleSpacing* spacing; + mTableFrame->GetStyleData(eStyleStruct_Spacing, (const nsStyleStruct *&)spacing); + nsMargin borderPadding; + spacing->CalcBorderPaddingFor(mTableFrame, borderPadding); + maxWidth -= borderPadding.left + borderPadding.right; + maxWidth = PR_MAX(0, maxWidth); } // set the table's columns to the min width // initialize the col percent and cell percent values to 0. diff --git a/mozilla/layout/html/table/src/nsTableOuterFrame.cpp b/mozilla/layout/html/table/src/nsTableOuterFrame.cpp index 381e943efce..790190ab558 100644 --- a/mozilla/layout/html/table/src/nsTableOuterFrame.cpp +++ b/mozilla/layout/html/table/src/nsTableOuterFrame.cpp @@ -809,14 +809,7 @@ nscoord nsTableOuterFrame::ComputeAvailableTableWidth(const nsHTMLReflowState& a maxWidth = aReflowState.availableWidth; break; } - - // Subtract out border and padding - const nsStyleSpacing* spacing = - (const nsStyleSpacing*)mStyleContext->GetStyleData(eStyleStruct_Spacing); - nsMargin borderPadding; - spacing->CalcBorderPaddingFor(this, borderPadding); - - maxWidth -= borderPadding.left + borderPadding.right; + if (maxWidth <= 0) { // Nonsense style specification maxWidth = 0; diff --git a/mozilla/layout/tables/BasicTableLayoutStrategy.cpp b/mozilla/layout/tables/BasicTableLayoutStrategy.cpp index f8a10678494..d548b55ce32 100644 --- a/mozilla/layout/tables/BasicTableLayoutStrategy.cpp +++ b/mozilla/layout/tables/BasicTableLayoutStrategy.cpp @@ -149,18 +149,15 @@ BasicTableLayoutStrategy::BalanceColumnWidths(nsIStyleContext* aTableSty if (!tableIsAutoWidth && (specifiedTableWidth > 0)) { maxWidth = PR_MIN(specifiedTableWidth, aMaxWidthIn); // specifiedWidth usually == aMaxWidthIn for fixed table } - // reduce the maxWidth by border and padding in some cases, since we will be dealing with content width - if (!tableIsAutoWidth && (maxWidth != NS_UNCONSTRAINEDSIZE)) { - const nsStylePosition* position; - mTableFrame->GetStyleData(eStyleStruct_Position, ((const nsStyleStruct *&)position)); - if (eStyleUnit_Percent != position->mWidth.GetUnit()) { - const nsStyleSpacing* spacing; - mTableFrame->GetStyleData(eStyleStruct_Spacing, (const nsStyleStruct *&)spacing); - nsMargin borderPadding; - spacing->CalcBorderPaddingFor(mTableFrame, borderPadding); - maxWidth -= borderPadding.left + borderPadding.right; - maxWidth = PR_MAX(0, maxWidth); - } + // reduce the maxWidth by border and padding, since we will be dealing with content width + // XXX should this be done in aMaxWidthIn by the caller? + if (maxWidth != NS_UNCONSTRAINEDSIZE) { + const nsStyleSpacing* spacing; + mTableFrame->GetStyleData(eStyleStruct_Spacing, (const nsStyleStruct *&)spacing); + nsMargin borderPadding; + spacing->CalcBorderPaddingFor(mTableFrame, borderPadding); + maxWidth -= borderPadding.left + borderPadding.right; + maxWidth = PR_MAX(0, maxWidth); } // set the table's columns to the min width // initialize the col percent and cell percent values to 0. diff --git a/mozilla/layout/tables/nsTableOuterFrame.cpp b/mozilla/layout/tables/nsTableOuterFrame.cpp index 381e943efce..790190ab558 100644 --- a/mozilla/layout/tables/nsTableOuterFrame.cpp +++ b/mozilla/layout/tables/nsTableOuterFrame.cpp @@ -809,14 +809,7 @@ nscoord nsTableOuterFrame::ComputeAvailableTableWidth(const nsHTMLReflowState& a maxWidth = aReflowState.availableWidth; break; } - - // Subtract out border and padding - const nsStyleSpacing* spacing = - (const nsStyleSpacing*)mStyleContext->GetStyleData(eStyleStruct_Spacing); - nsMargin borderPadding; - spacing->CalcBorderPaddingFor(this, borderPadding); - - maxWidth -= borderPadding.left + borderPadding.right; + if (maxWidth <= 0) { // Nonsense style specification maxWidth = 0;