Bug 1867784 - Force reflow all kids in the last column balancing reflow. r=layout...
commitc003be8b9727672e7d30972983b375f4c200233f
authorTing-Yu Lin <tlin@mozilla.com>
Sun, 10 Dec 2023 03:16:55 +0000 (10 03:16 +0000)
committerTing-Yu Lin <tlin@mozilla.com>
Sun, 10 Dec 2023 03:16:55 +0000 (10 03:16 +0000)
tree0c22d3c06485ff86ec909da81bf8c13f0ee126bf
parenta5f0efa367332ccd3b4bccc47476d69e7f5012a9
Bug 1867784 - Force reflow all kids in the last column balancing reflow. r=layout-reviewers,dholbert

The bug occurs because some abspos children are split, but not being reflowed
again in the last column balancing reflow where the available block-size of the
last column might be unconstrained.

This patch makes the callers utilizing `ReflowInput::ShouldReflowAllKids()`
always reflow in the last column balancing reflow to ensure the correctness of
the layout.

Note: the `mIsInLastColumnBalancingReflow` flag is inheriting from parent to
child reflow input, but it will stop at the nested `nsColumnSetFrame` because
the nested one will create its own `ReflowConfig::mIsLastBalancingReflow` and
assign that flag when creating the reflow input for the children.

Differential Revision: https://phabricator.services.mozilla.com/D195945
layout/generic/ReflowInput.cpp
layout/generic/ReflowInput.h
layout/generic/nsColumnSetFrame.cpp