mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 02:05:42 +00:00
Bug 1225018 part 2 - Ensure leading for emphasis marks of text directly inside block. r=jfkthame
--HG-- extra : source : ec7d4f32bc6ba7c8ea0e0f0441fabbf6f4e15672
This commit is contained in:
parent
e0157f6d78
commit
c66c20fcbf
@ -2323,6 +2323,31 @@ nsLineLayout::VerticalAlignFrames(PerSpanData* psd)
|
||||
lineWM.IsLineInverted());
|
||||
nscoord blockEnd = blockStart + minimumLineBSize;
|
||||
|
||||
if (mStyleText->HasTextEmphasis()) {
|
||||
nscoord fontMaxHeight = fm->MaxHeight();
|
||||
nscoord emphasisHeight = fontMaxHeight / 2;
|
||||
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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user