diff --git a/dlls/gdi/freetype.c b/dlls/gdi/freetype.c index d4d381247cf84c2cb0f12525b1ccbca9e10905e0..11a0c5217c8db1a53289e11e6412b51f9c0234aa 100644 --- a/dlls/gdi/freetype.c +++ b/dlls/gdi/freetype.c @@ -1162,12 +1162,16 @@ not_found: } else lf.lfCharSet = csi.ciCharset; } - if(lf.lfPitchAndFamily & FIXED_PITCH || - lf.lfPitchAndFamily & FF_MODERN) + + /* Face families are in the top 4 bits of lfPitchAndFamily, + so mask with 0xF0 before testing */ + + if((lf.lfPitchAndFamily & FIXED_PITCH) || + (lf.lfPitchAndFamily & 0xF0) == FF_MODERN) strcpyW(lf.lfFaceName, defFixed); - else if(lf.lfPitchAndFamily & FF_ROMAN) + else if((lf.lfPitchAndFamily & 0xF0) == FF_ROMAN) strcpyW(lf.lfFaceName, defSerif); - else if(lf.lfPitchAndFamily & FF_SWISS) + else if((lf.lfPitchAndFamily & 0xF0) == FF_SWISS) strcpyW(lf.lfFaceName, defSans); else strcpyW(lf.lfFaceName, defSans);