]> git.saurik.com Git - wxWidgets.git/commitdiff
Replace wxFONTFAMILY_DEFAULT with wxFONTFAMILY_SWISS when comparing fonts.
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 16 Aug 2013 11:04:39 +0000 (11:04 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 16 Aug 2013 11:04:39 +0000 (11:04 +0000)
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

index 7f05616606d234b3d03a56b01e586c1dd24b8cab..2928d1dd805e76c5f37f6a7f8c6ff1b330e64dbe 100644 (file)
@@ -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