зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
272514670b
Коммит
21a2c4c2b3
|
@ -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;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче