diff --git a/scwx-qt/source/scwx/qt/manager/font_manager.cpp b/scwx-qt/source/scwx/qt/manager/font_manager.cpp index 2747fd4d..e7266a84 100644 --- a/scwx-qt/source/scwx/qt/manager/font_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/font_manager.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include @@ -50,6 +51,7 @@ class FontManager::Impl public: explicit Impl(FontManager* self) : self_ {self} { + InitializeEnvironment(); InitializeFontCache(); InitializeFontconfig(); ConnectSignals(); @@ -58,6 +60,7 @@ public: void ConnectSignals(); void FinalizeFontconfig(); + void InitializeEnvironment(); void InitializeFontCache(); void InitializeFontconfig(); void UpdateImGuiFont(types::FontCategory fontCategory); @@ -385,6 +388,21 @@ void FontManager::LoadApplicationFont(types::Font font, } } +void FontManager::Impl::InitializeEnvironment() +{ +#if defined(__linux__) + // Because of the way Fontconfig is built with Conan, FONTCONFIG_PATH must be + // defined on Linux to ensure fonts can be found + static const std::string kFontconfigPathKey {"FONTCONFIG_PATH"}; + + std::string fontconfigPath = scwx::util::GetEnvironment(kFontconfigPathKey); + if (fontconfigPath.empty()) + { + scwx::util::SetEnvironment(kFontconfigPathKey, "/etc/fonts"); + } +#endif +} + void FontManager::Impl::InitializeFontCache() { std::string cachePath {