From 00dc8bac3c5107c1f515f332f564ca1650dcd73e Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 16 Aug 2013 11:04:39 +0000 Subject: [PATCH] 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 --- src/common/gdicmn.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/common/gdicmn.cpp b/src/common/gdicmn.cpp index 7f05616..2928d1d 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 -- 2.7.4