Replace wxFONTFAMILY_DEFAULT with wxFONTFAMILY_SWISS when comparing fonts.
Otherwise comparison always failed as no existing fonts had wxFONTFAMILY_DEFAULT as their family in all ports except wxOSX, which does keep wxFONTFAMILY_DEFAULT. Closes #15410. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -818,6 +818,17 @@ wxFont *wxFontList::FindOrCreateFont(int pointSize,
|
|||||||
const wxString& facename,
|
const wxString& facename,
|
||||||
wxFontEncoding encoding)
|
wxFontEncoding encoding)
|
||||||
{
|
{
|
||||||
|
// In all ports but wxOSX, the effective family of a font created using
|
||||||
|
// wxFONTFAMILY_DEFAULT is wxFONTFAMILY_SWISS so this is what we need to
|
||||||
|
// use for comparison.
|
||||||
|
//
|
||||||
|
// In wxOSX the original wxFONTFAMILY_DEFAULT seems to be kept and it uses
|
||||||
|
// a different font than wxFONTFAMILY_SWISS anyhow so we just preserve it.
|
||||||
|
#ifndef __WXOSX__
|
||||||
|
if ( family == wxFONTFAMILY_DEFAULT )
|
||||||
|
family = wxFONTFAMILY_SWISS;
|
||||||
|
#endif // !__WXOSX__
|
||||||
|
|
||||||
wxFont *font;
|
wxFont *font;
|
||||||
wxList::compatibility_iterator node;
|
wxList::compatibility_iterator node;
|
||||||
for (node = list.GetFirst(); node; node = node->GetNext())
|
for (node = list.GetFirst(); node; node = node->GetNext())
|
||||||
@@ -829,18 +840,7 @@ wxFont *wxFontList::FindOrCreateFont(int pointSize,
|
|||||||
font->GetWeight () == weight &&
|
font->GetWeight () == weight &&
|
||||||
font->GetUnderlined () == underline )
|
font->GetUnderlined () == underline )
|
||||||
{
|
{
|
||||||
wxFontFamily fontFamily = (wxFontFamily)font->GetFamily();
|
bool same = font->GetFamily() == family;
|
||||||
|
|
||||||
#if defined(__WXGTK__)
|
|
||||||
// under GTK the default family is wxSWISS, so looking for a font
|
|
||||||
// with wxDEFAULT family should return a wxSWISS one instead of
|
|
||||||
// creating a new one
|
|
||||||
bool same = (fontFamily == family) ||
|
|
||||||
(fontFamily == wxFONTFAMILY_SWISS && family == wxFONTFAMILY_DEFAULT);
|
|
||||||
#else // !GTK
|
|
||||||
// VZ: but why elsewhere do we require an exact match? mystery...
|
|
||||||
bool same = fontFamily == family;
|
|
||||||
#endif // GTK/!GTK
|
|
||||||
|
|
||||||
// empty facename matches anything at all: this is bad because
|
// empty facename matches anything at all: this is bad because
|
||||||
// depending on which fonts are already created, we might get back
|
// depending on which fonts are already created, we might get back
|
||||||
|
Reference in New Issue
Block a user