Bug 1090159 - Correct baseline alignment in vertical-rl writing mode. r=smontagu

This commit is contained in:
Jonathan Kew 2014-11-13 08:58:05 +00:00
parent 1dc8cfa43b
commit 257b729bc8

View File

@ -6018,8 +6018,11 @@ nsTextFrame::PaintText(nsRenderingContext* aRenderingContext, nsPoint aPt,
gfxPoint framePt(aPt.x, aPt.y);
gfxPoint textBaselinePt;
if (vertical) {
textBaselinePt = gfxPoint(aPt.x + mAscent,
rtl ? gfxFloat(aPt.y + GetSize().height) : aPt.y);
WritingMode wm = GetWritingMode();
textBaselinePt =
gfxPoint(wm.IsVerticalLR() ? aPt.x + mAscent
: aPt.x + frameWidth - mAscent,
rtl ? aPt.y + GetSize().height : aPt.y);
} else {
textBaselinePt = gfxPoint(rtl ? gfxFloat(aPt.x + frameWidth) : framePt.x,
nsLayoutUtils::GetSnappedBaselineY(this, ctx, aPt.y, mAscent));