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:
@@ -786,8 +786,13 @@ const wxNativeFontInfo *wxFont::GetNativeFontInfo() const
|
|||||||
wxCHECK_MSG( Ok(), (wxNativeFontInfo *)NULL, wxT("invalid font") );
|
wxCHECK_MSG( Ok(), (wxNativeFontInfo *)NULL, wxT("invalid font") );
|
||||||
|
|
||||||
#ifndef __WXGTK20__
|
#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();
|
GetInternalFont();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return &(M_FONTDATA->m_nativeFontInfo);
|
return &(M_FONTDATA->m_nativeFontInfo);
|
||||||
@@ -938,7 +943,7 @@ GdkFont *wxFont::GetInternalFont( float scale ) const
|
|||||||
if ( !font )
|
if ( !font )
|
||||||
{
|
{
|
||||||
// do we have the XLFD?
|
// do we have the XLFD?
|
||||||
if ( M_FONTDATA->HasNativeFont() )
|
if ( int_scale == 100 && M_FONTDATA->HasNativeFont() )
|
||||||
{
|
{
|
||||||
font = wxLoadFont(M_FONTDATA->m_nativeFontInfo.GetXFontName());
|
font = wxLoadFont(M_FONTDATA->m_nativeFontInfo.GetXFontName());
|
||||||
}
|
}
|
||||||
@@ -955,6 +960,10 @@ GdkFont *wxFont::GetInternalFont( float scale ) const
|
|||||||
M_FONTDATA->m_faceName,
|
M_FONTDATA->m_faceName,
|
||||||
M_FONTDATA->m_encoding,
|
M_FONTDATA->m_encoding,
|
||||||
&xfontname);
|
&xfontname);
|
||||||
|
// NB: wxFont::GetNativeFontInfo relies on this
|
||||||
|
// side-effect of GetInternalFont
|
||||||
|
if ( int_scale == 100 )
|
||||||
|
M_FONTDATA->m_nativeFontInfo.SetXFontName(xfontname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -786,8 +786,13 @@ const wxNativeFontInfo *wxFont::GetNativeFontInfo() const
|
|||||||
wxCHECK_MSG( Ok(), (wxNativeFontInfo *)NULL, wxT("invalid font") );
|
wxCHECK_MSG( Ok(), (wxNativeFontInfo *)NULL, wxT("invalid font") );
|
||||||
|
|
||||||
#ifndef __WXGTK20__
|
#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();
|
GetInternalFont();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return &(M_FONTDATA->m_nativeFontInfo);
|
return &(M_FONTDATA->m_nativeFontInfo);
|
||||||
@@ -938,7 +943,7 @@ GdkFont *wxFont::GetInternalFont( float scale ) const
|
|||||||
if ( !font )
|
if ( !font )
|
||||||
{
|
{
|
||||||
// do we have the XLFD?
|
// do we have the XLFD?
|
||||||
if ( M_FONTDATA->HasNativeFont() )
|
if ( int_scale == 100 && M_FONTDATA->HasNativeFont() )
|
||||||
{
|
{
|
||||||
font = wxLoadFont(M_FONTDATA->m_nativeFontInfo.GetXFontName());
|
font = wxLoadFont(M_FONTDATA->m_nativeFontInfo.GetXFontName());
|
||||||
}
|
}
|
||||||
@@ -955,6 +960,10 @@ GdkFont *wxFont::GetInternalFont( float scale ) const
|
|||||||
M_FONTDATA->m_faceName,
|
M_FONTDATA->m_faceName,
|
||||||
M_FONTDATA->m_encoding,
|
M_FONTDATA->m_encoding,
|
||||||
&xfontname);
|
&xfontname);
|
||||||
|
// NB: wxFont::GetNativeFontInfo relies on this
|
||||||
|
// side-effect of GetInternalFont
|
||||||
|
if ( int_scale == 100 )
|
||||||
|
M_FONTDATA->m_nativeFontInfo.SetXFontName(xfontname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user