diff options
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/unx/gtk/gtkinst.hxx | 2 | ||||
-rw-r--r-- | vcl/unx/gtk/gtkinst.cxx | 9 | ||||
-rw-r--r-- | vcl/unx/gtk/gtksalframe.cxx | 2 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkframe.cxx | 2 |
4 files changed, 8 insertions, 7 deletions
diff --git a/vcl/inc/unx/gtk/gtkinst.hxx b/vcl/inc/unx/gtk/gtkinst.hxx index 62cf55d20ce3..41ba5675df0b 100644 --- a/vcl/inc/unx/gtk/gtkinst.hxx +++ b/vcl/inc/unx/gtk/gtkinst.hxx @@ -237,7 +237,7 @@ public: virtual const cairo_font_options_t* GetCairoFontOptions() override; const cairo_font_options_t* GetLastSeenCairoFontOptions(); - void ResetLastSeenCairoFontOptions(); + void ResetLastSeenCairoFontOptions(const cairo_font_options_t* pOptions); void RemoveTimer (); diff --git a/vcl/unx/gtk/gtkinst.cxx b/vcl/unx/gtk/gtkinst.cxx index f7c41fff0f7d..42bb9e6e2423 100644 --- a/vcl/unx/gtk/gtkinst.cxx +++ b/vcl/unx/gtk/gtkinst.cxx @@ -194,7 +194,7 @@ GtkInstance::~GtkInstance() { assert( nullptr == m_pTimer ); DeInitAtkBridge(); - ResetLastSeenCairoFontOptions(); + ResetLastSeenCairoFontOptions(nullptr); } SalFrame* GtkInstance::CreateFrame( SalFrame* pParent, SalFrameStyleFlags nStyle ) @@ -484,13 +484,14 @@ const cairo_font_options_t* GtkInstance::GetLastSeenCairoFontOptions() return m_pLastCairoFontOptions; } -void GtkInstance::ResetLastSeenCairoFontOptions() +void GtkInstance::ResetLastSeenCairoFontOptions(const cairo_font_options_t* pCairoFontOptions) { if (m_pLastCairoFontOptions) - { cairo_font_options_destroy(m_pLastCairoFontOptions); + if (pCairoFontOptions) + m_pLastCairoFontOptions = cairo_font_options_copy(pCairoFontOptions); + else m_pLastCairoFontOptions = nullptr; - } } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/unx/gtk/gtksalframe.cxx b/vcl/unx/gtk/gtksalframe.cxx index 3f99b8c30d3d..16e716b16daa 100644 --- a/vcl/unx/gtk/gtksalframe.cxx +++ b/vcl/unx/gtk/gtksalframe.cxx @@ -3112,7 +3112,7 @@ void GtkSalFrame::signalStyleSet( GtkWidget*, GtkStyle* pPrevious, gpointer fram bFontSettingsChanged = false; if (bFontSettingsChanged) { - pInstance->ResetLastSeenCairoFontOptions(); + pInstance->ResetLastSeenCairoFontOptions(pCurrentCairoFontOptions); GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::FontChanged ); } } diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx index 38cb6b8c087a..f71e8f5ab344 100644 --- a/vcl/unx/gtk3/gtk3gtkframe.cxx +++ b/vcl/unx/gtk3/gtk3gtkframe.cxx @@ -3256,7 +3256,7 @@ void GtkSalFrame::signalStyleUpdated(GtkWidget*, gpointer frame) bFontSettingsChanged = false; if (bFontSettingsChanged) { - pInstance->ResetLastSeenCairoFontOptions(); + pInstance->ResetLastSeenCairoFontOptions(pCurrentCairoFontOptions); GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::FontChanged ); } } |