summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xfa/fxfa/cxfa_ffapp.cpp5
-rw-r--r--xfa/fxfa/cxfa_fwltheme.cpp12
-rw-r--r--xfa/fxfa/cxfa_fwltheme.h2
3 files changed, 15 insertions, 4 deletions
diff --git a/xfa/fxfa/cxfa_ffapp.cpp b/xfa/fxfa/cxfa_ffapp.cpp
index 777e2a4241..67a7270824 100644
--- a/xfa/fxfa/cxfa_ffapp.cpp
+++ b/xfa/fxfa/cxfa_ffapp.cpp
@@ -52,8 +52,11 @@ CFGAS_FontMgr* CXFA_FFApp::GetFDEFontMgr() {
}
CXFA_FWLTheme* CXFA_FFApp::GetFWLTheme() {
- if (!m_pFWLTheme)
+ if (!m_pFWLTheme) {
m_pFWLTheme = pdfium::MakeUnique<CXFA_FWLTheme>(this);
+ if (!m_pFWLTheme->LoadCalendarFont())
+ m_pFWLTheme = nullptr;
+ }
return m_pFWLTheme.get();
}
diff --git a/xfa/fxfa/cxfa_fwltheme.cpp b/xfa/fxfa/cxfa_fwltheme.cpp
index 0f41052d3b..22e091ee12 100644
--- a/xfa/fxfa/cxfa_fwltheme.cpp
+++ b/xfa/fxfa/cxfa_fwltheme.cpp
@@ -60,18 +60,24 @@ CXFA_FWLTheme::CXFA_FWLTheme(CXFA_FFApp* pApp)
m_pCalendarFont(nullptr),
m_pApp(pApp) {
m_Rect.Reset();
+}
+bool CXFA_FWLTheme::LoadCalendarFont() {
for (size_t i = 0; !m_pCalendarFont && i < FX_ArraySize(g_FWLTheme_CalFonts);
++i) {
m_pCalendarFont = CFGAS_GEFont::LoadFont(g_FWLTheme_CalFonts[i], 0, 0,
m_pApp->GetFDEFontMgr());
}
+
if (!m_pCalendarFont) {
- m_pCalendarFont = m_pApp->GetFDEFontMgr()->GetFontByCodePage(
- FX_CODEPAGE_MSWin_WesternEuropean, 0, nullptr);
+ CFGAS_FontMgr* font_mgr = m_pApp->GetFDEFontMgr();
+ if (font_mgr) {
+ m_pCalendarFont = font_mgr->GetFontByCodePage(
+ FX_CODEPAGE_MSWin_WesternEuropean, 0, nullptr);
+ }
}
- ASSERT(m_pCalendarFont);
+ return m_pCalendarFont != nullptr;
}
CXFA_FWLTheme::~CXFA_FWLTheme() {
diff --git a/xfa/fxfa/cxfa_fwltheme.h b/xfa/fxfa/cxfa_fwltheme.h
index bdab7cfdc5..b8f8ff68be 100644
--- a/xfa/fxfa/cxfa_fwltheme.h
+++ b/xfa/fxfa/cxfa_fwltheme.h
@@ -29,6 +29,8 @@ class CXFA_FWLTheme final : public IFWL_ThemeProvider {
explicit CXFA_FWLTheme(CXFA_FFApp* pApp);
~CXFA_FWLTheme() override;
+ bool LoadCalendarFont();
+
// IFWL_ThemeProvider:
void DrawBackground(CFWL_ThemeBackground* pParams) override;
void DrawText(CFWL_ThemeText* pParams) override;