mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 22:32:46 +00:00
Ensure aveCharWidth is wide enough for numerals. b=410405 r=pavlov a1.9=schrep
This commit is contained in:
parent
96eba5b7a3
commit
eddd24c738
@ -871,7 +871,7 @@ gfxPangoFont::GetCharSize(char aChar, gfxSize& aInkSize, gfxSize& aLogSize,
|
|||||||
pango_glyph_string_free(glstr);
|
pango_glyph_string_free(glstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// rounding and truncation functions for a Freetype floating point number
|
// rounding and truncation functions for a Freetype fixed point number
|
||||||
// (FT26Dot6) stored in a 32bit integer with high 26 bits for the integer
|
// (FT26Dot6) stored in a 32bit integer with high 26 bits for the integer
|
||||||
// part and low 6 bits for the fractional part.
|
// part and low 6 bits for the fractional part.
|
||||||
#define MOZ_FT_ROUND(x) (((x) + 32) & ~63) // 63 = 2^6 - 1
|
#define MOZ_FT_ROUND(x) (((x) + 32) & ~63) // 63 = 2^6 - 1
|
||||||
@ -913,8 +913,12 @@ gfxPangoFont::GetMetrics()
|
|||||||
mMetrics.maxDescent =
|
mMetrics.maxDescent =
|
||||||
pango_font_metrics_get_descent(pfm) / FLOAT_PANGO_SCALE;
|
pango_font_metrics_get_descent(pfm) / FLOAT_PANGO_SCALE;
|
||||||
|
|
||||||
|
// This is used for the width of text input elements so be liberal
|
||||||
|
// rather than conservative in the estimate.
|
||||||
mMetrics.aveCharWidth =
|
mMetrics.aveCharWidth =
|
||||||
pango_font_metrics_get_approximate_char_width(pfm) / FLOAT_PANGO_SCALE;
|
PR_MAX(pango_font_metrics_get_approximate_char_width(pfm),
|
||||||
|
pango_font_metrics_get_approximate_digit_width(pfm))
|
||||||
|
/ FLOAT_PANGO_SCALE;
|
||||||
|
|
||||||
mMetrics.underlineOffset =
|
mMetrics.underlineOffset =
|
||||||
pango_font_metrics_get_underline_position(pfm) / FLOAT_PANGO_SCALE;
|
pango_font_metrics_get_underline_position(pfm) / FLOAT_PANGO_SCALE;
|
||||||
@ -930,8 +934,7 @@ gfxPangoFont::GetMetrics()
|
|||||||
|
|
||||||
// We're going to overwrite this below if we have a FT_Face
|
// We're going to overwrite this below if we have a FT_Face
|
||||||
// (which we normally should have...).
|
// (which we normally should have...).
|
||||||
mMetrics.maxAdvance =
|
mMetrics.maxAdvance = mMetrics.aveCharWidth;
|
||||||
pango_font_metrics_get_approximate_char_width(pfm) / FLOAT_PANGO_SCALE;
|
|
||||||
} else {
|
} else {
|
||||||
mMetrics.maxAscent = 0.0;
|
mMetrics.maxAscent = 0.0;
|
||||||
mMetrics.maxDescent = 0.0;
|
mMetrics.maxDescent = 0.0;
|
||||||
@ -944,7 +947,7 @@ gfxPangoFont::GetMetrics()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ??
|
// ??
|
||||||
mMetrics.emHeight = mAdjustedSize ? mAdjustedSize : GetStyle()->size;
|
mMetrics.emHeight = mAdjustedSize;
|
||||||
|
|
||||||
gfxFloat lineHeight = mMetrics.maxAscent + mMetrics.maxDescent;
|
gfxFloat lineHeight = mMetrics.maxAscent + mMetrics.maxDescent;
|
||||||
if (lineHeight > mMetrics.emHeight)
|
if (lineHeight > mMetrics.emHeight)
|
||||||
|
Loading…
Reference in New Issue
Block a user