| Index: third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp b/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
|
| index 1aba9144cdca77bb57d4fc4460bf34f920a5cf4c..3469d4abc189a54d4964cd1e3a3e42f8a862488f 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
|
| @@ -387,10 +387,25 @@ void LayoutTableCell::styleDidChange(StyleDifference diff, const ComputedStyle*
|
| clearIntrinsicPadding();
|
|
|
| // If border was changed, notify table.
|
| - if (parent()) {
|
| - LayoutTable* table = this->table();
|
| - if (table && !table->selfNeedsLayout() && !table->normalChildNeedsLayout()&& oldStyle && oldStyle->border() != style()->border())
|
| - table->invalidateCollapsedBorders();
|
| + if (!parent())
|
| + return;
|
| + LayoutTable* table = this->table();
|
| + if (!table)
|
| + return;
|
| + if (!table->selfNeedsLayout() && !table->normalChildNeedsLayout()&& oldStyle && oldStyle->border() != style()->border())
|
| + table->invalidateCollapsedBorders();
|
| +
|
| + if (LayoutTableBoxComponent::doCellsHaveDirtyWidth(*this, *table, diff, *oldStyle)) {
|
| + if (previousCell()) {
|
| + // TODO(dgrogan) Add a layout test showing that setChildNeedsLayout is needed instead of setNeedsLayout.
|
| + previousCell()->setChildNeedsLayout();
|
| + previousCell()->setPreferredLogicalWidthsDirty(MarkOnlyThis);
|
| + }
|
| + if (nextCell()) {
|
| + // TODO(dgrogan) Add a layout test showing that setChildNeedsLayout is needed instead of setNeedsLayout.
|
| + nextCell()->setChildNeedsLayout();
|
| + nextCell()->setPreferredLogicalWidthsDirty(MarkOnlyThis);
|
| + }
|
| }
|
| }
|
|
|
|
|