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:
parent
9ee2b746fb
commit
eb7dd3d5d4
1 changed files with 11 additions and 0 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue