mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-15 06:15:43 +00:00
Bug 1106083 - Record the new containerWidth on lines when finalizing their placement in vertical-rl mode, so that they maintain their proper positioning during subsequent block-dir resize reflows. r=smontagu
This commit is contained in:
parent
4828cf4930
commit
e38b6ceb9d
@ -1248,12 +1248,14 @@ nsBlockFrame::Reflow(nsPresContext* aPresContext,
|
|||||||
// therefore block-dir coordinate conversion depends on knowing the width
|
// therefore block-dir coordinate conversion depends on knowing the width
|
||||||
// of the coordinate space in order to translate between the logical and
|
// of the coordinate space in order to translate between the logical and
|
||||||
// physical origins.
|
// physical origins.
|
||||||
if (wm.GetBlockDir() == WritingMode::BlockDir::eBlockRL) {
|
if (wm.IsVerticalRL()) {
|
||||||
nscoord deltaX = aMetrics.Width() - state.mContainerWidth;
|
nscoord containerWidth = aMetrics.Width();
|
||||||
|
nscoord deltaX = containerWidth - state.mContainerWidth;
|
||||||
if (deltaX) {
|
if (deltaX) {
|
||||||
for (line_iterator line = begin_lines(), end = end_lines();
|
for (line_iterator line = begin_lines(), end = end_lines();
|
||||||
line != end; line++) {
|
line != end; line++) {
|
||||||
SlideLine(state, line, -deltaX);
|
SlideLine(state, line, -deltaX);
|
||||||
|
line->mContainerWidth = containerWidth;
|
||||||
}
|
}
|
||||||
for (nsIFrame* f = mFloats.FirstChild(); f; f = f->GetNextSibling()) {
|
for (nsIFrame* f = mFloats.FirstChild(); f; f = f->GetNextSibling()) {
|
||||||
nsPoint physicalDelta(deltaX, 0);
|
nsPoint physicalDelta(deltaX, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user