| Index: third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp b/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
|
| index 330709877e78c9eb82ea2f75984d83f8f1108141..438d036af5934ea9b94a7ddc63771e871fe00b56 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
|
| @@ -125,6 +125,10 @@ void LayoutTableSection::styleDidChange(StyleDifference diff, const ComputedStyl
|
| LayoutTable* table = this->table();
|
| if (table && !table->selfNeedsLayout() && !table->normalChildNeedsLayout() && oldStyle && oldStyle->border() != style()->border())
|
| table->invalidateCollapsedBorders();
|
| +
|
| + if (table && oldStyle && diff.needsFullLayout() && needsLayout() && table->collapseBorders() && borderWidthChanged(oldStyle, style())) {
|
| + markAllCellsNeedsLayoutAndWidthsDirty();
|
| + }
|
| }
|
|
|
| void LayoutTableSection::willBeRemovedFromTree()
|
| @@ -1216,6 +1220,21 @@ bool LayoutTableSection::recalcChildOverflowAfterStyleChange()
|
| return childrenOverflowChanged;
|
| }
|
|
|
| +void LayoutTableSection::markAllCellsNeedsLayoutAndWidthsDirty()
|
| +{
|
| + for (unsigned i = 0; i < numRows(); i++) {
|
| + LayoutTableRow* row = rowLayoutObjectAt(i);
|
| + if (!row)
|
| + continue;
|
| + for (LayoutTableCell* cell = row->firstCell(); cell; cell = cell->nextCell()) {
|
| + cell->setPreferredLogicalWidthsDirty();
|
| + // TODO(dgrogan): This is cargo culted from LayoutTableRow::styleDidChange
|
| + // but I haven't yet come up with a layout test that needs it.
|
| + cell->setChildNeedsLayout();
|
| + }
|
| + }
|
| +}
|
| +
|
| int LayoutTableSection::calcBlockDirectionOuterBorder(BlockBorderSide side) const
|
| {
|
| unsigned totalCols = table()->numEffectiveColumns();
|
|
|