-
hyatt@apple.com authored
2009-01-25 David Hyatt <hyatt@apple.com> Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections. The new table code created a bug involving markAllDescendantsWithFloatsForLayout, namely that it could end up marking ancestors of a block as needing layout when that block was still in the process of doing a layout. The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not we are "mid-layout." If this flag is set, then the method will make sure to do only local dirtying of objects to avoid accidentally marking a clean ancestor as needing layout again. Ultimately the second parameter to setNeedsLayout and setChildNeedsLayout should just be removed, with a check of whether or not we are mid-layout being done by those methods instead. Reviewed by Oliver Hunt Added fast/repaint/dynamic-table-vertical-alignment-change.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::collapseMargins): (WebCore::RenderBlock::clearFloatsIfNeeded): (WebCore::RenderBlock::layoutBlockChildren): (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout): * rendering/RenderBlock.h: * rendering/RenderObject.cpp: (WebCore::RenderObject::removeFromObjectLists): * rendering/RenderObject.h: * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::layoutRows): LayoutTests: 2009-01-25 David Hyatt <hyatt@apple.com> Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524. Reviewed by Oliver Hunt * fast/repaint/dynamic-table-vertical-alignment-change.html: Added. * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added. * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added. * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40238 268f45cc-cd09-0410-ab3c-d52691b4dbfc
8b2cd1fe