fonts: better font matching
Huw D M Davies
h.davies1 at physics.ox.ac.uk
Mon Aug 9 11:39:12 CDT 2004
Huw Davies <huw at codeweavers.com>
Try harder to match to a font if the family name is matches,
but the style is doesn't.
--
Huw Davies
huw at codeweavers.com
Index: dlls/gdi/freetype.c
===================================================================
RCS file: /home/wine/wine/dlls/gdi/freetype.c,v
retrieving revision 1.65
diff -u -r1.65 freetype.c
--- dlls/gdi/freetype.c 6 Aug 2004 17:31:39 -0000 1.65
+++ dlls/gdi/freetype.c 9 Aug 2004 16:36:47 -0000
@@ -1759,7 +1759,25 @@
if(!face && best)
face = best;
else if(!face) {
- face = family->FirstFace;
+ best = NULL;
+ for(face = family->FirstFace; face; face = face->next) {
+ if(face->scalable)
+ break;
+ if(height > 0)
+ newdiff = height - (signed int)(face->size.y_ppem >> 6);
+ else
+ newdiff = -height - ((signed int)(face->size.y_ppem >> 6) - face->size.internal_leading);
+ if(!best || (diff > 0 && newdiff < diff && newdiff >= 0) ||
+ (diff < 0 && newdiff > diff)) {
+ TRACE("%ld is better for %d diff was %d\n", face->size.y_ppem >> 6, height, diff);
+ diff = newdiff;
+ best = face;
+ if(diff == 0)
+ break;
+ }
+ }
+ if(!face && best)
+ face = best;
if(it && !face->Italic) ret->fake_italic = TRUE;
if(bd && !face->Bold) ret->fake_bold = TRUE;
}
More information about the wine-patches
mailing list