author | Ya-Chieh Wu <ywu@mozilla.com> |
Thu, 30 Nov 2017 19:18:00 +0200 | |
changeset 394995 | 6e6e4bd1d151ab89344add22b592b81dea0a1578 |
parent 394994 | 4bc8cdd5e71658e3954bab1f104c42b370c6ed12 |
child 394996 | 72958e6e0e4ab94ed63da9afb0d4e51510d07076 |
push id | 97990 |
push user | nerli@mozilla.com |
push date | Tue, 05 Dec 2017 14:19:32 +0000 |
treeherder | mozilla-inbound@72958e6e0e4a [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | dbaron |
bugs | 1405929 |
milestone | 59.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/tables/nsTableFrame.cpp +++ b/layout/tables/nsTableFrame.cpp @@ -6448,22 +6448,24 @@ nsTableFrame::CalcBCBorders() //the last row in the row group, but only a cell with rowspan=1 //will know whether *this* row is at the bEnd const nsIFrame* nextRowGroup = ajaInfo.mRgAtStart ? ajaInfo.mRowGroup : nullptr; info.SetInnerRowGroupBEndContBCBorder(nextRowGroup, ajaInfo.mStartRow); gotRowBorder = true; } } - - // see if the cell to the iEnd side had a rowspan and its bEnd-iStart border - // needs be joined with this one's bEnd - // if there is a cell to the iEnd and the cell to iEnd side was a rowspan - if ((info.mNumTableCols != info.GetCellEndColIndex() + 1) && - (lastBEndBorders[info.GetCellEndColIndex() + 1].rowSpan > 1)) { + // In the function, we try to join two cells' BEnd. + // We normally do this work when processing the cell on the iEnd side, + // but when the cell on the iEnd side has a rowspan, the cell on the + // iStart side gets processed later (now), so we have to do this work now. + const auto nextColIndex = info.GetCellEndColIndex() + 1; + if ((info.mNumTableCols != nextColIndex) && + (lastBEndBorders[nextColIndex].rowSpan > 1) && + (lastBEndBorders[nextColIndex].rowIndex == info.GetCellEndRowIndex() + 1)) { BCCornerInfo& corner = bEndCorners[info.GetCellEndColIndex() + 1]; if (!IsBlock(LogicalSide(corner.ownerSide))) { // not a block-dir owner BCCellBorder& thisBorder = lastBEndBorder; BCCellBorder& nextBorder = lastBEndBorders[info.mColIndex + 1]; if ((thisBorder.color == nextBorder.color) && (thisBorder.width == nextBorder.width) && (thisBorder.style == nextBorder.style)) {