зеркало из https://github.com/mozilla/gecko-dev.git
removed border subtraction from out table frame and adjusted in layout strategy.
This commit is contained in:
Родитель
c81c71360e
Коммит
95e4bec1f7
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче