Index: chrome/browser/ui/prefs/prefs_tab_helper.cc |
=================================================================== |
--- chrome/browser/ui/prefs/prefs_tab_helper.cc (revision 279858) |
+++ chrome/browser/ui/prefs/prefs_tab_helper.cc (working copy) |
@@ -34,6 +34,10 @@ |
#include "chrome/browser/themes/theme_service_factory.h" |
#endif |
+#if defined(OS_WIN) |
+#include "base/win/windows_version.h" |
+#endif |
+ |
using content::WebContents; |
DEFINE_WEB_CONTENTS_USER_DATA_KEY(PrefsTabHelper); |
@@ -124,6 +128,17 @@ |
} |
#endif // !defined(OS_ANDROID) |
+#if defined(OS_WIN) |
+// On Windows with DirectWrite we want to use an alternate fixed font like |
+// Consolas, which looks much better than Courier New. |
+bool ShouldUseAlternateDefaultFixedFont() { |
+ UINT smooth_type = 0; |
+ SystemParametersInfo(SPI_GETFONTSMOOTHINGTYPE, 0, &smooth_type, 0); |
+ return (base::win::GetVersion() >= base::win::VERSION_WIN7) && |
+ (smooth_type == FE_FONTSMOOTHINGCLEARTYPE); |
+} |
+#endif |
+ |
struct FontDefault { |
const char* pref_name; |
int resource_id; |
@@ -454,7 +469,15 @@ |
std::set<std::string> fonts_with_defaults; |
UScriptCode browser_script = GetScriptOfBrowserLocale(); |
for (size_t i = 0; i < kFontDefaultsLength; ++i) { |
- const FontDefault& pref = kFontDefaults[i]; |
+ FontDefault pref = kFontDefaults[i]; |
+ |
+#if defined(OS_WIN) |
+ if (pref.pref_name == prefs::kWebKitFixedFontFamily) { |
+ if (ShouldUseAlternateDefaultFixedFont()) |
+ pref.resource_id = IDS_FIXED_FONT_FAMILY_ALT_WIN; |
+ } |
+#endif |
+ |
UScriptCode pref_script = GetScriptOfFontPref(pref.pref_name); |
// Suppress this default font pref value if it is for the primary script of |