border collapse - lookup the correct border owner style, bug 196133, r=jkeiser sr=roc+moz

This commit is contained in:
bmlk%gmx.de 2003-05-31 14:49:18 +00:00
Родитель d325dff0e8
Коммит f96d268197
2 изменённых файлов: 60 добавлений и 48 удалений

Просмотреть файл

@ -6506,6 +6506,8 @@ struct BCVerticalSeg
PRInt32 colX;
nsTableCellFrame* ajaCell;
nsTableCellFrame* firstCell; // cell at the start of the segment
nsTableRowGroupFrame* firstRowGroup; // row group at the start of the segment
nsTableRowFrame* firstRow; // row at the start of the segment
nsTableCellFrame* lastCell; // cell at the current end of the segment
PRInt32 segY;
PRInt32 segHeight;
@ -6547,6 +6549,8 @@ BCVerticalSeg::Start(BCMapBorderIterator& aIter,
segWidth = aVerSegWidth;
owner = aBorderOwner;
firstCell = aIter.cell;
firstRowGroup = aIter.rg;
firstRow = aIter.row;
if (xAdj > 0) {
ajaCell = aVerInfoArray[xAdj - 1].lastCell;
}
@ -6769,6 +6773,8 @@ nsTableFrame::PaintBCBorders(nsIPresContext* aPresContext,
// get the border style, color and paint the segment
PRUint8 side = (iter.IsRightMost()) ? NS_SIDE_RIGHT : NS_SIDE_LEFT;
nsTableColGroupFrame* cg = nsnull;
nsTableRowFrame* row = info.firstRow;
nsTableRowGroupFrame* rowGroup = info.firstRowGroup;
nsTableColFrame* col = info.col; if (!col) ABORT0();
nsTableCellFrame* cell = info.firstCell;
PRUint8 style = NS_STYLE_BORDER_STYLE_SOLID;
@ -6806,16 +6812,16 @@ nsTableFrame::PaintBCBorders(nsIPresContext* aPresContext,
NS_ASSERTION(PR_FALSE, "program error"); // and fall through
case eRowGroupOwner:
NS_ASSERTION(iter.IsLeftMostTable() || iter.IsRightMostTable(), "program error");
if (iter.rg) {
::GetStyleInfo(*iter.rg, side, style, color, ignoreIfRules);
if (rowGroup) {
::GetStyleInfo(*rowGroup, side, style, color, ignoreIfRules);
}
break;
case eAjaRowOwner:
NS_ASSERTION(PR_FALSE, "program error"); // and fall through
case eRowOwner:
NS_ASSERTION(iter.IsLeftMostTable() || iter.IsRightMostTable(), "program error");
if (iter.row) {
::GetStyleInfo(*iter.row, side, style, color, ignoreIfRules);
if (row) {
::GetStyleInfo(*row, side, style, color, ignoreIfRules);
}
break;
case eAjaCellOwner:

Просмотреть файл

@ -6506,6 +6506,8 @@ struct BCVerticalSeg
PRInt32 colX;
nsTableCellFrame* ajaCell;
nsTableCellFrame* firstCell; // cell at the start of the segment
nsTableRowGroupFrame* firstRowGroup; // row group at the start of the segment
nsTableRowFrame* firstRow; // row at the start of the segment
nsTableCellFrame* lastCell; // cell at the current end of the segment
PRInt32 segY;
PRInt32 segHeight;
@ -6547,6 +6549,8 @@ BCVerticalSeg::Start(BCMapBorderIterator& aIter,
segWidth = aVerSegWidth;
owner = aBorderOwner;
firstCell = aIter.cell;
firstRowGroup = aIter.rg;
firstRow = aIter.row;
if (xAdj > 0) {
ajaCell = aVerInfoArray[xAdj - 1].lastCell;
}
@ -6769,6 +6773,8 @@ nsTableFrame::PaintBCBorders(nsIPresContext* aPresContext,
// get the border style, color and paint the segment
PRUint8 side = (iter.IsRightMost()) ? NS_SIDE_RIGHT : NS_SIDE_LEFT;
nsTableColGroupFrame* cg = nsnull;
nsTableRowFrame* row = info.firstRow;
nsTableRowGroupFrame* rowGroup = info.firstRowGroup;
nsTableColFrame* col = info.col; if (!col) ABORT0();
nsTableCellFrame* cell = info.firstCell;
PRUint8 style = NS_STYLE_BORDER_STYLE_SOLID;
@ -6806,16 +6812,16 @@ nsTableFrame::PaintBCBorders(nsIPresContext* aPresContext,
NS_ASSERTION(PR_FALSE, "program error"); // and fall through
case eRowGroupOwner:
NS_ASSERTION(iter.IsLeftMostTable() || iter.IsRightMostTable(), "program error");
if (iter.rg) {
::GetStyleInfo(*iter.rg, side, style, color, ignoreIfRules);
if (rowGroup) {
::GetStyleInfo(*rowGroup, side, style, color, ignoreIfRules);
}
break;
case eAjaRowOwner:
NS_ASSERTION(PR_FALSE, "program error"); // and fall through
case eRowOwner:
NS_ASSERTION(iter.IsLeftMostTable() || iter.IsRightMostTable(), "program error");
if (iter.row) {
::GetStyleInfo(*iter.row, side, style, color, ignoreIfRules);
if (row) {
::GetStyleInfo(*row, side, style, color, ignoreIfRules);
}
break;
case eAjaCellOwner: