Bug 1106665 - Fix text-align:justify for vertical writing modes. r=smontagu

This commit is contained in:
Jonathan Kew 2014-12-02 20:29:29 -08:00
parent 4eaf476a52
commit 18b2531efe

View File

@ -3382,13 +3382,16 @@ PropertyProvider::SetupJustificationSpacing(bool aPostReflow)
return; return;
} }
// Remember that textrun measurements are in the run's orientation,
// so its advance "width" is actually a height in vertical writing modes,
// corresponding to the inline-direction of the frame.
gfxFloat naturalWidth = gfxFloat naturalWidth =
mTextRun->GetAdvanceWidth(mStart.GetSkippedOffset(), mTextRun->GetAdvanceWidth(mStart.GetSkippedOffset(),
GetSkippedDistance(mStart, realEnd), this); GetSkippedDistance(mStart, realEnd), this);
if (mFrame->GetStateBits() & TEXT_HYPHEN_BREAK) { if (mFrame->GetStateBits() & TEXT_HYPHEN_BREAK) {
naturalWidth += GetHyphenWidth(); naturalWidth += GetHyphenWidth();
} }
mJustificationSpacing = mFrame->GetSize().width - naturalWidth; mJustificationSpacing = mFrame->ISize() - naturalWidth;
if (mJustificationSpacing <= 0) { if (mJustificationSpacing <= 0) {
// No space available // No space available
return; return;