diff options
-rw-r--r-- | xfa/fxfa/cxfa_ffapp.cpp | 5 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_fwltheme.cpp | 12 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_fwltheme.h | 2 |
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; |