X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3f66f6a5b3583b02c34854556eb83e3a808524ce..931d6a47c32a5b4c283243cb553ce71ee2b535d5:/src/common/gdicmn.cpp?ds=sidebyside diff --git a/src/common/gdicmn.cpp b/src/common/gdicmn.cpp index 7f05616606..2928d1dd80 100644 --- a/src/common/gdicmn.cpp +++ b/src/common/gdicmn.cpp @@ -818,6 +818,17 @@ wxFont *wxFontList::FindOrCreateFont(int pointSize, const wxString& facename, 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; wxList::compatibility_iterator node; for (node = list.GetFirst(); node; node = node->GetNext()) @@ -829,18 +840,7 @@ wxFont *wxFontList::FindOrCreateFont(int pointSize, font->GetWeight () == weight && font->GetUnderlined () == underline ) { - wxFontFamily fontFamily = (wxFontFamily)font->GetFamily(); - -#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 + bool same = font->GetFamily() == family; // empty facename matches anything at all: this is bad because // depending on which fonts are already created, we might get back