From: Vadim Zeitlin Date: Fri, 14 Apr 2006 17:34:35 +0000 (+0000) Subject: respect the specified font encoding in DoGetTextExtent() instead of always using... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/bf5752a4a050ded0fac576d3d76661e36320c6c6?ds=inline respect the specified font encoding in DoGetTextExtent() instead of always using m_font git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/gtk/dcclient.cpp b/src/gtk/dcclient.cpp index 78269d6bbe..62e70ce5d6 100644 --- a/src/gtk/dcclient.cpp +++ b/src/gtk/dcclient.cpp @@ -1696,16 +1696,24 @@ void wxWindowDC::DoGetTextExtent(const wxString &string, *externalLeading = 0; if (string.empty()) - { return; - } - // Set new font description - if (theFont) - pango_layout_set_font_description( m_layout, theFont->GetNativeFontInfo()->description ); + // ensure that theFont is always non-NULL + if ( !theFont || !theFont->Ok() ) + theFont = wx_const_cast(wxFont *, &m_font); + + // and use it if it's valid + if ( theFont->Ok() ) + { + pango_layout_set_font_description + ( + m_layout, + theFont->GetNativeFontInfo()->description + ); + } // Set layout's text - const wxCharBuffer dataUTF8 = wxGTK_CONV(string); + const wxCharBuffer dataUTF8 = wxGTK_CONV_FONT(string, *theFont); if ( !dataUTF8 ) { // hardly ideal, but what else can we do if conversion failed?