diff --git a/src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp b/src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp index e5e71cdaaef..610cd1d64b0 100644 --- a/src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp +++ b/src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp @@ -801,4 +801,17 @@ bool QWindowsDirectWriteFontDatabase::supportsVariableApplicationFonts() const return false; } +void QWindowsDirectWriteFontDatabase::invalidate() +{ + QWindowsFontDatabase::invalidate(); + + for (IDWriteFontFamily *value : m_populatedFonts) + value->Release(); + m_populatedFonts.clear(); + m_populatedFonts.squeeze(); + + m_populatedBitmapFonts.clear(); + m_populatedBitmapFonts.squeeze(); +} + QT_END_NAMESPACE diff --git a/src/gui/text/windows/qwindowsdirectwritefontdatabase_p.h b/src/gui/text/windows/qwindowsdirectwritefontdatabase_p.h index 3b2bba4d7b6..3e5e9663a96 100644 --- a/src/gui/text/windows/qwindowsdirectwritefontdatabase_p.h +++ b/src/gui/text/windows/qwindowsdirectwritefontdatabase_p.h @@ -59,6 +59,9 @@ public: return m_populatedFonts.contains(fontFamily); } +protected: + void invalidate() override; + private: friend class QWindowsFontEngineDirectWrite; static QString localeString(IDWriteLocalizedStrings *names, wchar_t localeName[]);