Bug 410857 part 1 - Traverse overflow lines too so we don't miss some text. r=jfkthame draft
authorMats Palmgren <mats@mozilla.com>
Mon, 20 Feb 2017 00:34:13 +0100
changeset 486791 b792b86881070735c7c6dc5ab1dfba6c9b057544
parent 486741 16effd5b21ab03629feca04b5b83911bb757394c
child 486792 6ec85ae1516a3c77740d58c4932740a03251dad8
push id46061
push usermpalmgren@mozilla.com
push dateMon, 20 Feb 2017 00:13:17 +0000
reviewersjfkthame
bugs410857
milestone54.0a1
Bug 410857 part 1 - Traverse overflow lines too so we don't miss some text. r=jfkthame MozReview-Commit-ID: 6Akh0WRtDR
layout/base/nsBidiPresUtils.cpp
--- 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);
 }