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 4e713dc412c8e3b2db62ba10f890a9fc88a21815..065fd124bba0ddffd9af7771451aef5544fc8df6 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, |
@@ -226,12 +226,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) { |
- return NULL; |
- } |
- 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"); |
@@ -239,11 +236,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_ |