Index: core/src/fxge/ge/fx_ge_linux.cpp |
diff --git a/core/src/fxge/ge/fx_ge_linux.cpp b/core/src/fxge/ge/fx_ge_linux.cpp |
index 299806ca07ed36cbdb888f3fceae0b3525618a76..8ff0a4e5b179834d9395092b578ddac72fa1b21a 100644 |
--- a/core/src/fxge/ge/fx_ge_linux.cpp |
+++ b/core/src/fxge/ge/fx_ge_linux.cpp |
@@ -34,7 +34,7 @@ class CFX_LinuxFontInfo : public CFX_FolderFontInfo { |
int pitch_family, |
const FX_CHAR* family, |
int& iExact) override; |
- FX_BOOL ParseFontCfg(); |
+ FX_BOOL ParseFontCfg(const char** pUserPaths); |
void* FindFont(int weight, |
FX_BOOL bItalic, |
int charset, |
@@ -227,9 +227,9 @@ void* CFX_LinuxFontInfo::FindFont(int weight, |
} |
return pFind; |
} |
-IFX_SystemFontInfo* IFX_SystemFontInfo::CreateDefault() { |
+IFX_SystemFontInfo* IFX_SystemFontInfo::CreateDefault(const char** pUserPaths) { |
CFX_LinuxFontInfo* pInfo = new CFX_LinuxFontInfo; |
- if (!pInfo->ParseFontCfg()) { |
+ if (!pInfo->ParseFontCfg(pUserPaths)) { |
pInfo->AddPath("/usr/share/fonts"); |
pInfo->AddPath("/usr/share/X11/fonts/Type1"); |
pInfo->AddPath("/usr/share/X11/fonts/TTF"); |
@@ -237,11 +237,18 @@ IFX_SystemFontInfo* IFX_SystemFontInfo::CreateDefault() { |
} |
return pInfo; |
} |
-FX_BOOL CFX_LinuxFontInfo::ParseFontCfg() { |
- return FALSE; |
+FX_BOOL CFX_LinuxFontInfo::ParseFontCfg(const char** pUserPaths) { |
+ if (!pUserPaths) { |
+ return FALSE; |
+ } |
+ for (const char** pPath = pUserPaths; *pPath; ++pPath) { |
+ AddPath(*pPath); |
+ } |
+ return TRUE; |
} |
void CFX_GEModule::InitPlatform() { |
- m_pFontMgr->SetSystemFontInfo(IFX_SystemFontInfo::CreateDefault()); |
+ m_pFontMgr->SetSystemFontInfo( |
+ IFX_SystemFontInfo::CreateDefault(m_pUserFontPaths)); |
} |
void CFX_GEModule::DestroyPlatform() {} |
#endif // _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_ |