From b7f0fb4d8a8e48db586991d10057f6975493a071 Mon Sep 17 00:00:00 2001 From: Simon Montagu Date: Mon, 28 Jul 2014 01:20:58 -0700 Subject: [PATCH] Bug 1044198: convert margins from the frame's writing mode to the line's writing mode in nsBidiPresUtils::RepositionInlineFrames, r=jfkthame. --- layout/base/nsBidiPresUtils.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/layout/base/nsBidiPresUtils.cpp b/layout/base/nsBidiPresUtils.cpp index 5ca1b7efd0c8..f1bbbf32af91 100644 --- a/layout/base/nsBidiPresUtils.cpp +++ b/layout/base/nsBidiPresUtils.cpp @@ -1396,9 +1396,9 @@ nsBidiPresUtils::RepositionFrame(nsIFrame* aFrame, // This method is called from nsBlockFrame::PlaceLine via the call to // bidiUtils->ReorderFrames, so this is guaranteed to be after the inlines // have been reflowed, which is required for GetUsedMargin/Border/Padding - LogicalMargin margin(frameWM, aFrame->GetUsedMargin()); + LogicalMargin margin(aLineWM, aFrame->GetUsedMargin()); if (isFirst) { - aStart += margin.IStart(frameWM); + aStart += margin.IStart(aLineWM); } nscoord start = aStart; @@ -1457,7 +1457,7 @@ nsBidiPresUtils::RepositionFrame(nsIFrame* aFrame, aFrame->SetRect(aLineWM, logicalRect, aLineWidth); if (isLast) { - aStart += margin.IEnd(frameWM); + aStart += margin.IEnd(aLineWM); } } @@ -1492,11 +1492,10 @@ nsBidiPresUtils::RepositionInlineFrames(BidiLineData *aBld, // This method is called from nsBlockFrame::PlaceLine via the call to // bidiUtils->ReorderFrames, so this is guaranteed to be after the inlines // have been reflowed, which is required for GetUsedMargin/Border/Padding - WritingMode frameWM = aFirstChild->GetWritingMode(); - LogicalMargin margin(frameWM, aFirstChild->GetUsedMargin()); + LogicalMargin margin(aLineWM, aFirstChild->GetUsedMargin()); if (!aFirstChild->GetPrevContinuation() && !aFirstChild->FrameIsNonFirstInIBSplit()) - startSpace = margin.IStart(frameWM); + startSpace = margin.IStart(aLineWM); nscoord start = LogicalRect(aLineWM, aFirstChild->GetRect(), aLineWidth).IStart(aLineWM) - startSpace;