Description[New Multicolumn] Rebalance properly when child content changes.
Some refactoring and cleanup in layoutColumns() & friends was necessary
to get this a bit more robust and consistent.
Always prepare column sets for layout when we're going to lay out the
flow thread. Even when the sets themselves are not going to be laid
out, laying out the flow thread will update things in the sets, so we
need a clean slate. This includes making sure that the list of old content
runs is empty (clean it when the initial column height has been calculated).
This fixes an assertion failure in the beginning of distributeImplicitBreaks().
Added a test that used to trigger this.
Make sure that we always validate regions after layout. Doing it from the
last set was just bogus. There may be no sets, or the last set may not
have been marked for layout. In both cases we'd end up failing to
validate. This would result in assertion failures and inability to map
from a flow thread coordinate to a set.
BUG=370813
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=174854
Patch Set 1 #Patch Set 2 : rebase master #
Total comments: 10
Patch Set 3 : rebase master #Patch Set 4 : Get rid of updateLogicalWidth(); it's not needed if we move what it does to more appropriate places. #Patch Set 5 : Get rid of prepareForLayout(). Most of what it did is now in resetColumnHeight(). Avoid modifying t… #Patch Set 6 : More cleanup; avoid bool arguments. Get rid of layout() override. #
Total comments: 10
Patch Set 7 : code review #Messages
Total messages: 11 (0 generated)
|