fixed incorrect handling of scaled fonts and fixed GetNativeFontInfo to return meaningful data with GTK1

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2004-06-16 21:00:18 +00:00
parent a0f428c6ad
commit 38de94271f
2 changed files with 22 additions and 4 deletions

View File

@@ -786,8 +786,13 @@ const wxNativeFontInfo *wxFont::GetNativeFontInfo() const
wxCHECK_MSG( Ok(), (wxNativeFontInfo *)NULL, wxT("invalid font") );
#ifndef __WXGTK20__
if ( M_FONTDATA->m_nativeFontInfo.GetXFontName().empty() )
if ( !M_FONTDATA->HasNativeFont() )
{
// NB: this call has important side-effect: it not only finds
// GdkFont representation, it also initializes m_nativeFontInfo
// by calling its SetXFontName method
GetInternalFont();
}
#endif
return &(M_FONTDATA->m_nativeFontInfo);
@@ -938,7 +943,7 @@ GdkFont *wxFont::GetInternalFont( float scale ) const
if ( !font )
{
// do we have the XLFD?
if ( M_FONTDATA->HasNativeFont() )
if ( int_scale == 100 && M_FONTDATA->HasNativeFont() )
{
font = wxLoadFont(M_FONTDATA->m_nativeFontInfo.GetXFontName());
}
@@ -955,6 +960,10 @@ GdkFont *wxFont::GetInternalFont( float scale ) const
M_FONTDATA->m_faceName,
M_FONTDATA->m_encoding,
&xfontname);
// NB: wxFont::GetNativeFontInfo relies on this
// side-effect of GetInternalFont
if ( int_scale == 100 )
M_FONTDATA->m_nativeFontInfo.SetXFontName(xfontname);
}
}