diff --git a/mozilla/layout/html/table/src/nsTableCellFrame.cpp b/mozilla/layout/html/table/src/nsTableCellFrame.cpp index 49e0cb380cd..8d11e51e630 100644 --- a/mozilla/layout/html/table/src/nsTableCellFrame.cpp +++ b/mozilla/layout/html/table/src/nsTableCellFrame.cpp @@ -299,6 +299,8 @@ NS_METHOD nsTableCellFrame::Reflow(nsIPresContext& aPresContext, printf(" content returned desired width %d given avail width %d\n", kidSize.width, availSize.width); } +#endif + // Nav4 hack for 0 dimensioned cells. // Empty cells are assigned a width and height of 4px // see testcase "cellHeights.html" @@ -321,7 +323,7 @@ NS_METHOD nsTableCellFrame::Reflow(nsIPresContext& aPresContext, if (gsDebug) printf ("setting child height from 0 to %d for nav4 compatibility\n", NSIntPixelsToTwips(4, p2t)); } // end Nav4 hack for 0 dimensioned cells -#endif + if (PR_TRUE==gsDebug || PR_TRUE==gsDebugNT) { if (nsnull!=pMaxElementSize) @@ -354,10 +356,8 @@ NS_METHOD nsTableCellFrame::Reflow(nsIPresContext& aPresContext, // next determine the cell's width nscoord cellWidth = kidSize.width; // at this point, we've factored in the cell's style attributes - if (NS_UNCONSTRAINEDSIZE!=availSize.width) // only add in insets if we previously subtracted them out - { - cellWidth += leftInset + rightInset; // factor in insets - } + // add the insets into the cell width (in both the constrained-width and unconstrained-width cases + cellWidth += leftInset + rightInset; // factor in border and padding // set the cell's desired size and max element size aDesiredSize.width = cellWidth; @@ -473,14 +473,11 @@ void nsTableCellFrame::MapHTMLBorderStyle(nsIPresContext* aPresContext, // if the border color is white, then shift to grey if (borderColor == 0xFFFFFFFF) borderColor = 0xFFC0C0C0; - - aSpacingStyle.SetBorderColor(NS_SIDE_TOP, borderColor); aSpacingStyle.SetBorderColor(NS_SIDE_LEFT, borderColor); aSpacingStyle.SetBorderColor(NS_SIDE_BOTTOM, borderColor); aSpacingStyle.SetBorderColor(NS_SIDE_RIGHT, borderColor); - //adjust the border style based on the table rules attribute const nsStyleTable* tableStyle; tableFrame->GetStyleData(eStyleStruct_Table, (const nsStyleStruct *&)tableStyle); @@ -494,8 +491,17 @@ void nsTableCellFrame::MapHTMLBorderStyle(nsIPresContext* aPresContext, aSpacingStyle.SetBorderStyle(NS_SIDE_RIGHT, NS_STYLE_BORDER_STYLE_NONE); break; case NS_STYLE_TABLE_RULES_GROUPS: +#ifdef NS_DEBUG + printf("warning: NS_STYLE_TABLE_RULES_GROUPS used but not yet implemented.\n"); +#endif // XXX: it depends on which cell this is! /* + for h-sides, walk up content parent list to row and see what "index in parent" row is. + if it is 0 or last, then draw the rule. otherwise, don't. Probably just compare + against FirstChild and LastChild. + for v-sides, do the same thing only for col and colgroup. + */ + /* aSpacingStyle.mBorderStyle[NS_SIDE_TOP] = NS_STYLE_BORDER_STYLE_NONE; aSpacingStyle.mBorderStyle[NS_SIDE_RIGHT] = NS_STYLE_BORDER_STYLE_NONE; aSpacingStyle.mBorderStyle[NS_SIDE_BOTTOM] = NS_STYLE_BORDER_STYLE_NONE; diff --git a/mozilla/layout/tables/nsTableCellFrame.cpp b/mozilla/layout/tables/nsTableCellFrame.cpp index 49e0cb380cd..8d11e51e630 100644 --- a/mozilla/layout/tables/nsTableCellFrame.cpp +++ b/mozilla/layout/tables/nsTableCellFrame.cpp @@ -299,6 +299,8 @@ NS_METHOD nsTableCellFrame::Reflow(nsIPresContext& aPresContext, printf(" content returned desired width %d given avail width %d\n", kidSize.width, availSize.width); } +#endif + // Nav4 hack for 0 dimensioned cells. // Empty cells are assigned a width and height of 4px // see testcase "cellHeights.html" @@ -321,7 +323,7 @@ NS_METHOD nsTableCellFrame::Reflow(nsIPresContext& aPresContext, if (gsDebug) printf ("setting child height from 0 to %d for nav4 compatibility\n", NSIntPixelsToTwips(4, p2t)); } // end Nav4 hack for 0 dimensioned cells -#endif + if (PR_TRUE==gsDebug || PR_TRUE==gsDebugNT) { if (nsnull!=pMaxElementSize) @@ -354,10 +356,8 @@ NS_METHOD nsTableCellFrame::Reflow(nsIPresContext& aPresContext, // next determine the cell's width nscoord cellWidth = kidSize.width; // at this point, we've factored in the cell's style attributes - if (NS_UNCONSTRAINEDSIZE!=availSize.width) // only add in insets if we previously subtracted them out - { - cellWidth += leftInset + rightInset; // factor in insets - } + // add the insets into the cell width (in both the constrained-width and unconstrained-width cases + cellWidth += leftInset + rightInset; // factor in border and padding // set the cell's desired size and max element size aDesiredSize.width = cellWidth; @@ -473,14 +473,11 @@ void nsTableCellFrame::MapHTMLBorderStyle(nsIPresContext* aPresContext, // if the border color is white, then shift to grey if (borderColor == 0xFFFFFFFF) borderColor = 0xFFC0C0C0; - - aSpacingStyle.SetBorderColor(NS_SIDE_TOP, borderColor); aSpacingStyle.SetBorderColor(NS_SIDE_LEFT, borderColor); aSpacingStyle.SetBorderColor(NS_SIDE_BOTTOM, borderColor); aSpacingStyle.SetBorderColor(NS_SIDE_RIGHT, borderColor); - //adjust the border style based on the table rules attribute const nsStyleTable* tableStyle; tableFrame->GetStyleData(eStyleStruct_Table, (const nsStyleStruct *&)tableStyle); @@ -494,8 +491,17 @@ void nsTableCellFrame::MapHTMLBorderStyle(nsIPresContext* aPresContext, aSpacingStyle.SetBorderStyle(NS_SIDE_RIGHT, NS_STYLE_BORDER_STYLE_NONE); break; case NS_STYLE_TABLE_RULES_GROUPS: +#ifdef NS_DEBUG + printf("warning: NS_STYLE_TABLE_RULES_GROUPS used but not yet implemented.\n"); +#endif // XXX: it depends on which cell this is! /* + for h-sides, walk up content parent list to row and see what "index in parent" row is. + if it is 0 or last, then draw the rule. otherwise, don't. Probably just compare + against FirstChild and LastChild. + for v-sides, do the same thing only for col and colgroup. + */ + /* aSpacingStyle.mBorderStyle[NS_SIDE_TOP] = NS_STYLE_BORDER_STYLE_NONE; aSpacingStyle.mBorderStyle[NS_SIDE_RIGHT] = NS_STYLE_BORDER_STYLE_NONE; aSpacingStyle.mBorderStyle[NS_SIDE_BOTTOM] = NS_STYLE_BORDER_STYLE_NONE;