diff --git a/shell/platform/linux/BUILD.gn b/shell/platform/linux/BUILD.gn index db36000e0da21..54e1bbbd7c709 100644 --- a/shell/platform/linux/BUILD.gn +++ b/shell/platform/linux/BUILD.gn @@ -16,7 +16,7 @@ group("linux") { } } -# Temporary workraround for the issue describe in +# Temporary workaround for the issue describe in # https://github.com/flutter/flutter/issues/14509 and # https://github.com/flutter/flutter/issues/14438 # Remove once the build infrastructure moves to Ubuntu 18.04 or newer, where diff --git a/third_party/txt/src/txt/font_collection.cc b/third_party/txt/src/txt/font_collection.cc index 70104d90f8506..3b550f7f313fb 100644 --- a/third_party/txt/src/txt/font_collection.cc +++ b/third_party/txt/src/txt/font_collection.cc @@ -150,11 +150,14 @@ FontCollection::GetMinikinFontCollectionForFamilies( } // Search for default font family if no user font families were found. if (minikin_families.empty()) { - const auto default_font_family = GetDefaultFontFamily(); - std::shared_ptr minikin_family = - FindFontFamilyInManagers(default_font_family); - if (minikin_family != nullptr) { - minikin_families.push_back(minikin_family); + const auto default_font_families = GetDefaultFontFamilies(); + for (auto family : default_font_families) { + std::shared_ptr minikin_family = + FindFontFamilyInManagers(family); + if (minikin_family != nullptr) { + minikin_families.push_back(minikin_family); + break; + } } } // Default font family also not found. We fail to get a FontCollection. @@ -319,7 +322,7 @@ FontCollection::CreateSktFontCollection() { skt_collection_ = sk_make_sp(); skt_collection_->setDefaultFontManager(default_font_manager_, - GetDefaultFontFamily().c_str()); + GetDefaultFontFamilies()[0].c_str()); skt_collection_->setAssetFontManager(asset_font_manager_); skt_collection_->setDynamicFontManager(dynamic_font_manager_); skt_collection_->setTestFontManager(test_font_manager_); diff --git a/third_party/txt/src/txt/platform.cc b/third_party/txt/src/txt/platform.cc index 41831870d5335..c60731b3758b5 100644 --- a/third_party/txt/src/txt/platform.cc +++ b/third_party/txt/src/txt/platform.cc @@ -6,8 +6,8 @@ namespace txt { -std::string GetDefaultFontFamily() { - return "Arial"; +std::vector GetDefaultFontFamilies() { + return {"Arial"}; } sk_sp GetDefaultFontManager() { diff --git a/third_party/txt/src/txt/platform.h b/third_party/txt/src/txt/platform.h index 3df3433011ea2..6c3a3cc53a984 100644 --- a/third_party/txt/src/txt/platform.h +++ b/third_party/txt/src/txt/platform.h @@ -6,13 +6,15 @@ #define TXT_PLATFORM_H_ #include +#include + #include "flutter/fml/macros.h" #include "third_party/skia/include/core/SkFontMgr.h" namespace txt { -std::string GetDefaultFontFamily(); +std::vector GetDefaultFontFamilies(); sk_sp GetDefaultFontManager(); diff --git a/third_party/txt/src/txt/platform_android.cc b/third_party/txt/src/txt/platform_android.cc index ae7fa2c77ec2c..1e42a7c770b7c 100644 --- a/third_party/txt/src/txt/platform_android.cc +++ b/third_party/txt/src/txt/platform_android.cc @@ -6,8 +6,8 @@ namespace txt { -std::string GetDefaultFontFamily() { - return "sans-serif"; +std::vector GetDefaultFontFamilies() { + return {"sans-serif"}; } sk_sp GetDefaultFontManager() { diff --git a/third_party/txt/src/txt/platform_fuchsia.cc b/third_party/txt/src/txt/platform_fuchsia.cc index fd5dc73fcf4c6..23b0e96900b16 100644 --- a/third_party/txt/src/txt/platform_fuchsia.cc +++ b/third_party/txt/src/txt/platform_fuchsia.cc @@ -6,8 +6,8 @@ namespace txt { -std::string GetDefaultFontFamily() { - return "Roboto"; +std::vector GetDefaultFontFamilies() { + return {"Roboto"}; } sk_sp GetDefaultFontManager() { diff --git a/third_party/txt/src/txt/platform_linux.cc b/third_party/txt/src/txt/platform_linux.cc index 36df613eecb90..9e13898d49e7a 100644 --- a/third_party/txt/src/txt/platform_linux.cc +++ b/third_party/txt/src/txt/platform_linux.cc @@ -12,8 +12,8 @@ namespace txt { -std::string GetDefaultFontFamily() { - return "Arial"; +std::vector GetDefaultFontFamilies() { + return {"Ubuntu", "Cantarell", "DejaVu Sans", "Liberation Sans", "Arial"}; } sk_sp GetDefaultFontManager() { diff --git a/third_party/txt/src/txt/platform_mac.mm b/third_party/txt/src/txt/platform_mac.mm index 3dce7b6ca3954..da9847458928e 100644 --- a/third_party/txt/src/txt/platform_mac.mm +++ b/third_party/txt/src/txt/platform_mac.mm @@ -16,11 +16,11 @@ namespace txt { -std::string GetDefaultFontFamily() { +std::vector GetDefaultFontFamilies() { if (fml::IsPlatformVersionAtLeast(9)) { - return [FONT_CLASS systemFontOfSize:14].familyName.UTF8String; + return {[FONT_CLASS systemFontOfSize:14].familyName.UTF8String}; } else { - return "Helvetica"; + return {"Helvetica"}; } } diff --git a/third_party/txt/src/txt/platform_windows.cc b/third_party/txt/src/txt/platform_windows.cc index c16e30386252a..da44b9fd1c3b6 100644 --- a/third_party/txt/src/txt/platform_windows.cc +++ b/third_party/txt/src/txt/platform_windows.cc @@ -7,8 +7,8 @@ namespace txt { -std::string GetDefaultFontFamily() { - return "Arial"; +std::vector GetDefaultFontFamilies() { + return {"Segoe UI", "Arial"}; } sk_sp GetDefaultFontManager() { diff --git a/third_party/txt/src/txt/text_style.cc b/third_party/txt/src/txt/text_style.cc index 8ca0c42a1e4cb..04589659b6539 100644 --- a/third_party/txt/src/txt/text_style.cc +++ b/third_party/txt/src/txt/text_style.cc @@ -23,8 +23,7 @@ namespace txt { -TextStyle::TextStyle() - : font_families(std::vector(1, GetDefaultFontFamily())) {} +TextStyle::TextStyle() : font_families(GetDefaultFontFamilies()) {} bool TextStyle::equals(const TextStyle& other) const { if (color != other.color)