[FONTS] Add substitutes for the System font, and remove a hack for the System font...
authorMark Jansen <mark.jansen@reactos.org>
Sun, 9 Jul 2017 15:06:49 +0000 (15:06 +0000)
committerMark Jansen <mark.jansen@reactos.org>
Sun, 9 Jul 2017 15:06:49 +0000 (15:06 +0000)
svn path=/trunk/; revision=75310

reactos/base/setup/usetup/muifonts.h
reactos/win32ss/gdi/ntgdi/freetype.c

index 0df7c19..e600880 100644 (file)
@@ -18,6 +18,7 @@ MUI_SUBFONT LatinFonts[] =
     { L"Terminal",               L"DejaVu Sans Mono" },
     { L"Times New Roman",        L"Liberation Serif" },
     { L"Trebuchet MS",           L"Open Sans" },
+    { L"System",                 L"FreeSans" },
     { NULL, NULL }
 };
 
@@ -38,6 +39,7 @@ MUI_SUBFONT CyrillicFonts[] =
     { L"Terminal",               L"DejaVu Sans Mono" },
     { L"Times New Roman",        L"Liberation Serif" },
     { L"Trebuchet MS",           L"Open Sans" },
+    { L"System",                 L"FreeSans" },
     { NULL, NULL }
 };
 
@@ -58,6 +60,7 @@ MUI_SUBFONT GreekFonts[] =
     { L"Terminal",               L"DejaVu Sans Mono" },
     { L"Times New Roman",        L"Liberation Serif" },
     { L"Trebuchet MS",           L"Open Sans" },
+    { L"System",                 L"FreeSans" },
     { NULL, NULL }
 };
 
@@ -78,6 +81,7 @@ MUI_SUBFONT HebrewFonts[] =
     { L"Terminal",               L"DejaVu Sans Mono" },
     { L"Times New Roman",        L"DejaVu Serif" },
     { L"Trebuchet MS",           L"Open Sans" },
+    { L"System",                 L"FreeSans" },
     { NULL, NULL }
 };
 
@@ -107,6 +111,7 @@ MUI_SUBFONT ChineseSimplifiedFonts[] =
     { L"SimSun",                 L"Droid Sans Fallback" },
     { L"NSimSun",                L"Droid Sans Fallback" },
     { L"MS Song",                L"Droid Sans Fallback" },
+    { L"System",                 L"Droid Sans Fallback" },
     /* localized names */
     { CSF_LocalName0,            L"Droid Sans Fallback" },
     { CSF_LocalName1,            L"Droid Sans Fallback" },
@@ -141,6 +146,7 @@ MUI_SUBFONT ChineseTraditionalFonts[] =
     { L"PMingLiU",        L"Droid Sans Fallback" },
     { L"DLCMingMedium",   L"Droid Sans Fallback" },
     { L"DLCMingBold",     L"Droid Sans Fallback" },
+    { L"System",          L"Droid Sans Fallback" },
     /* localized names */
     { CTF_LocalName0,     L"Droid Sans Fallback" },
     { CTF_LocalName1,     L"Droid Sans Fallback" },
@@ -174,6 +180,7 @@ MUI_SUBFONT JapaneseFonts[] =
     { L"MS PMincho",      L"Droid Sans Fallback" },
     { L"MS Gothic",       L"Droid Sans Fallback" },
     { L"MS PGothic",      L"Droid Sans Fallback" },
+    { L"System",          L"Droid Sans Fallback" },
     /* localized names */
     { JF_LocalName0,      L"Droid Sans Fallback" },
     { JF_LocalName1,      L"Droid Sans Fallback" },
@@ -211,6 +218,7 @@ MUI_SUBFONT KoreanFonts[] =
     { L"GungsuhChe",      L"Droid Sans Fallback" },
     { L"Gulim",           L"Droid Sans Fallback" },
     { L"GulimChe",        L"Droid Sans Fallback" },
+    { L"System",          L"Droid Sans Fallback" },
     /* localized names */
     { KF_LocalName0,      L"Droid Sans Fallback" },
     { KF_LocalName1,      L"Droid Sans Fallback" },
@@ -238,5 +246,6 @@ MUI_SUBFONT UnicodeFonts[] =
     { L"Terminal",               L"DejaVu Sans Mono" },
     { L"Times New Roman",        L"DejaVu Serif" },
     { L"Trebuchet MS",           L"Open Sans" },
+    { L"System",                 L"FreeSans" },
     { NULL, NULL }
 };
index 898f58c..42c639d 100644 (file)
@@ -52,8 +52,6 @@ static const WORD gusEnglishUS = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US);
 
 /* special font names */
 static const UNICODE_STRING MarlettW = RTL_CONSTANT_STRING(L"Marlett");
-static const UNICODE_STRING SystemW = RTL_CONSTANT_STRING(L"System");
-static const UNICODE_STRING FixedSysW = RTL_CONSTANT_STRING(L"FixedSys");
 
 /* registry */
 static UNICODE_STRING FontRegPath =
@@ -3979,7 +3977,7 @@ GetFontPenalty(const LOGFONTW *               LogFont,
     ULONG   Penalty = 0;
     BYTE    Byte;
     LONG    Long;
-    BOOL    fFixedSys = FALSE, fNeedScaling = FALSE;
+    BOOL    fNeedScaling = FALSE;
     const BYTE UserCharSet = CharSetFromLangID(gusLanguageID);
     const TEXTMETRICW * TM = &Otm->otmTextMetrics;
     WCHAR* ActualNameW;
@@ -3993,62 +3991,38 @@ GetFontPenalty(const LOGFONTW *               LogFont,
     /* FIXME: SmallPenalty Penalty 1 */
     /* FIXME: FaceNameSubst Penalty 500 */
 
-    if (_wcsicmp(LogFont->lfFaceName, L"System") == 0)
+    Byte = LogFont->lfCharSet;
+    if (Byte == DEFAULT_CHARSET)
     {
-        /* "System" font */
-        if (TM->tmCharSet != UserCharSet)
+        if (_wcsicmp(LogFont->lfFaceName, L"Marlett") == 0)
         {
-            /* CharSet Penalty 65000 */
-            /* Requested charset does not match the candidate's. */
-            Penalty += 65000;
+            if (Byte == ANSI_CHARSET)
+            {
+                DPRINT("Warning: FIXME: It's Marlett but ANSI_CHARSET.\n");
+            }
+            /* We assume SYMBOL_CHARSET for "Marlett" font */
+            Byte = SYMBOL_CHARSET;
         }
     }
-    else if (_wcsicmp(LogFont->lfFaceName, L"FixedSys") == 0)
+
+    if (Byte != TM->tmCharSet)
     {
-        /* "FixedSys" font */
-        if (TM->tmCharSet != UserCharSet)
+        if (Byte != DEFAULT_CHARSET && Byte != ANSI_CHARSET)
         {
             /* CharSet Penalty 65000 */
             /* Requested charset does not match the candidate's. */
             Penalty += 65000;
         }
-        fFixedSys = TRUE;
-    }
-    else    /* Request is non-"System" font */
-    {
-        Byte = LogFont->lfCharSet;
-        if (Byte == DEFAULT_CHARSET)
-        {
-            if (_wcsicmp(LogFont->lfFaceName, L"Marlett") == 0)
-            {
-                if (Byte == ANSI_CHARSET)
-                {
-                    DPRINT("Warning: FIXME: It's Marlett but ANSI_CHARSET.\n");
-                }
-                /* We assume SYMBOL_CHARSET for "Marlett" font */
-                Byte = SYMBOL_CHARSET;
-            }
-        }
-
-        if (Byte != TM->tmCharSet)
+        else
         {
-            if (Byte != DEFAULT_CHARSET && Byte != ANSI_CHARSET)
+            if (UserCharSet != TM->tmCharSet)
             {
-                /* CharSet Penalty 65000 */
-                /* Requested charset does not match the candidate's. */
-                Penalty += 65000;
-            }
-            else
-            {
-                if (UserCharSet != TM->tmCharSet)
+                /* UNDOCUMENTED */
+                Penalty += 100;
+                if (ANSI_CHARSET != TM->tmCharSet)
                 {
                     /* UNDOCUMENTED */
                     Penalty += 100;
-                    if (ANSI_CHARSET != TM->tmCharSet)
-                    {
-                        /* UNDOCUMENTED */
-                        Penalty += 100;
-                    }
                 }
             }
         }
@@ -4083,11 +4057,6 @@ GetFontPenalty(const LOGFONTW *               LogFont,
     Byte = (LogFont->lfPitchAndFamily & 0x0F);
     if (Byte == DEFAULT_PITCH)
         Byte = VARIABLE_PITCH;
-    if (fFixedSys)
-    {
-        /* "FixedSys" font should be fixed-pitch */
-        Byte = FIXED_PITCH;
-    }
     if (Byte == FIXED_PITCH)
     {
         if (TM->tmPitchAndFamily & _TMPF_VARIABLE_PITCH)