Bug 410857 part 1 - Traverse overflow lines too so we don't miss some text. r=jfkthame
MozReview-Commit-ID: 6Akh0WRtDR
--- a/layout/base/nsBidiPresUtils.cpp
+++ b/layout/base/nsBidiPresUtils.cpp
@@ -690,17 +690,21 @@ nsBidiPresUtils::Resolve(nsBlockFrame* a
bpd.PushBidiControl(ch);
}
for (nsBlockFrame* block = aBlockFrame; block;
block = static_cast<nsBlockFrame*>(block->GetNextContinuation())) {
block->RemoveStateBits(NS_BLOCK_NEEDS_BIDI_RESOLUTION);
nsBlockInFlowLineIterator lineIter(block, block->LinesBegin());
bpd.mPrevFrame = nullptr;
TraverseFrames(aBlockFrame, &lineIter, block->PrincipalChildList().FirstChild(), &bpd);
- // XXX what about overflow lines?
+ nsBlockFrame::FrameLines* overflowLines = block->GetOverflowLines();
+ if (overflowLines) {
+ nsBlockInFlowLineIterator lineIter(block, overflowLines->mLines.begin(), true);
+ TraverseFrames(aBlockFrame, &lineIter, block->PrincipalChildList().FirstChild(), &bpd);
+ }
}
if (ch != 0) {
bpd.PopBidiControl(ch);
}
return ResolveParagraph(aBlockFrame, &bpd);
}