Bug 1225018 part 4 - Ensure leading for emphasis marks of text directly inside block. r=jfkthame

--HG--
extra : source : 778a1de3e41583e1c8f0a885ca34efc12375396a
This commit is contained in:
Xidorn Quan 2015-12-08 12:55:01 -05:00
Родитель 272514670b
Коммит 21a2c4c2b3
1 изменённых файлов: 26 добавлений и 0 удалений

Просмотреть файл

@ -2329,6 +2329,32 @@ nsLineLayout::VerticalAlignFrames(PerSpanData* psd)
lineWM.IsLineInverted());
nscoord blockEnd = blockStart + minimumLineBSize;
if (mStyleText->HasTextEmphasis()) {
nscoord fontMaxHeight = fm->MaxHeight();
nscoord emphasisHeight =
GetBSizeOfEmphasisMarks(spanFrame, inflation);
nscoord delta = fontMaxHeight + emphasisHeight - minimumLineBSize;
if (delta > 0) {
if (minimumLineBSize < fontMaxHeight) {
// If the leadings are negative, fill them first.
nscoord ascent = fm->MaxAscent();
nscoord descent = fm->MaxDescent();
if (lineWM.IsLineInverted()) {
Swap(ascent, descent);
}
blockStart = -ascent;
blockEnd = descent;
delta = emphasisHeight;
}
LogicalSide side = mStyleText->TextEmphasisSide(lineWM);
if (side == eLogicalSideBStart) {
blockStart -= delta;
} else {
blockEnd += delta;
}
}
}
if (blockStart < minBCoord) minBCoord = blockStart;
if (blockEnd > maxBCoord) maxBCoord = blockEnd;