зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1038663 (part 5, attempt 2) - Change GetSpacingFlags(). r=heycam.
This commit is contained in:
Родитель
9ba99963c2
Коммит
3cde644d8c
|
@ -1645,6 +1645,26 @@ WordSpacing(nsIFrame* aFrame, const nsStyleText* aStyleText = nullptr)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Returns gfxTextRunFactory::TEXT_ENABLE_SPACING if non-standard
|
||||||
|
// letter-spacing or word-spacing is present.
|
||||||
|
static uint32_t
|
||||||
|
GetSpacingFlags(nsIFrame* aFrame, const nsStyleText* aStyleText = nullptr)
|
||||||
|
{
|
||||||
|
if (aFrame->IsSVGText()) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const nsStyleText* styleText = aFrame->StyleText();
|
||||||
|
const nsStyleCoord& ls = styleText->mLetterSpacing;
|
||||||
|
const nsStyleCoord& ws = styleText->mWordSpacing;
|
||||||
|
|
||||||
|
bool nonStandardSpacing =
|
||||||
|
(eStyleUnit_Coord == ls.GetUnit() && ls.GetCoordValue() != 0) ||
|
||||||
|
(eStyleUnit_Coord == ws.GetUnit() && ws.GetCoordValue() != 0);
|
||||||
|
|
||||||
|
return nonStandardSpacing ? gfxTextRunFactory::TEXT_ENABLE_SPACING : 0;
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
BuildTextRunsScanner::ContinueTextRunAcrossFrames(nsTextFrame* aFrame1, nsTextFrame* aFrame2)
|
BuildTextRunsScanner::ContinueTextRunAcrossFrames(nsTextFrame* aFrame1, nsTextFrame* aFrame2)
|
||||||
{
|
{
|
||||||
|
@ -1796,12 +1816,6 @@ BuildTextRunsScanner::GetNextBreakBeforeFrame(uint32_t* aIndex)
|
||||||
return static_cast<nsTextFrame*>(mLineBreakBeforeFrames.ElementAt(index));
|
return static_cast<nsTextFrame*>(mLineBreakBeforeFrames.ElementAt(index));
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t
|
|
||||||
GetSpacingFlags(nscoord spacing)
|
|
||||||
{
|
|
||||||
return spacing ? gfxTextRunFactory::TEXT_ENABLE_SPACING : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gfxFontGroup*
|
static gfxFontGroup*
|
||||||
GetFontGroupForFrame(nsIFrame* aFrame, float aFontSizeInflation,
|
GetFontGroupForFrame(nsIFrame* aFrame, float aFontSizeInflation,
|
||||||
nsFontMetrics** aOutFontMetrics = nullptr)
|
nsFontMetrics** aOutFontMetrics = nullptr)
|
||||||
|
@ -1957,8 +1971,7 @@ BuildTextRunsScanner::BuildTextRunForFrames(void* aTextBuffer)
|
||||||
if (NS_STYLE_TEXT_TRANSFORM_NONE != textStyle->mTextTransform) {
|
if (NS_STYLE_TEXT_TRANSFORM_NONE != textStyle->mTextTransform) {
|
||||||
anyTextTransformStyle = true;
|
anyTextTransformStyle = true;
|
||||||
}
|
}
|
||||||
textFlags |= GetSpacingFlags(LetterSpacing(f));
|
textFlags |= GetSpacingFlags(f);
|
||||||
textFlags |= GetSpacingFlags(WordSpacing(f));
|
|
||||||
nsTextFrameUtils::CompressionMode compression =
|
nsTextFrameUtils::CompressionMode compression =
|
||||||
GetCSSWhitespaceToCompressionMode(f, textStyle);
|
GetCSSWhitespaceToCompressionMode(f, textStyle);
|
||||||
if ((enabledJustification || f->ShouldSuppressLineBreak()) &&
|
if ((enabledJustification || f->ShouldSuppressLineBreak()) &&
|
||||||
|
|
Загрузка…
Ссылка в новой задаче