1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-26 15:10:50 -08:00

(w32_native_per_char_metric): Don't trust the metrics

that Windows returns.  If a double check fails, try to guess how
ExtTextOut is going to act.
This commit is contained in:
Jason Rumney 2002-01-20 16:21:15 +00:00
parent 9ee2b746fb
commit eb7dd3d5d4

View file

@ -1238,7 +1238,18 @@ w32_native_per_char_metric (font, char2b, font_type, pcm)
if (retval)
{
/* Don't trust the ABC widths. For synthesized fonts they are
wrong, and so is the result of GetCharWidth()! */
int real_width;
GetCharWidth (hdc, *char2b, *char2b, &real_width);
pcm->width = char_widths.abcA + char_widths.abcB + char_widths.abcC;
/* As far as I can tell, this is the best way to determine what
ExtTextOut will do with the broken font. */
if (pcm->width != real_width)
pcm->width = (pcm->width + real_width) / 2;
pcm->lbearing = char_widths.abcA;
pcm->rbearing = pcm->width - char_widths.abcC;
pcm->ascent = FONT_BASE (font);