]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/font.cpp
make sure we have a default handling the quit command, see #12402
[wxWidgets.git] / src / osx / carbon / font.cpp
index 11853c8e5ee7511bd05afbc382190cab9f446632..d6c35540fb24f33da5deb5b9667364c8ec8321bb 100644 (file)
@@ -667,7 +667,7 @@ wxGDIRefData *wxFont::CloneGDIRefData(const wxGDIRefData *data) const
 
 void wxFont::SetPointSize(int pointSize)
 {
-    if ( M_FONTDATA->GetPointSize() == pointSize )
+    if ( M_FONTDATA != NULL && M_FONTDATA->GetPointSize() == pointSize )
         return;
 
     AllocExclusive();
@@ -742,8 +742,11 @@ wxSize wxFont::GetPixelSize() const
 
 bool wxFont::IsFixedWidth() const
 {
-    wxCHECK_MSG( M_FONTDATA != NULL , wxFONTWEIGHT_MAX, wxT("invalid font") );
+    wxCHECK_MSG( M_FONTDATA != NULL , false, wxT("invalid font") );
     
+    // cast away constness otherwise lazy font resolution is not possible
+    const_cast<wxFont *>(this)->RealizeResource();
+
     return M_FONTDATA->IsFixedWidth();
 }
 
@@ -1109,7 +1112,16 @@ void wxNativeFontInfo::Init(int size,
                   wxFontEncoding encoding)
 {
     Init();
-    m_pointSize = size;
+
+    // We should use the default font size if the special value wxDEFAULT is
+    // specified and we also handle -1 as a synonym for wxDEFAULT for
+    // compatibility with wxGTK (see #12541).
+    //
+    // Notice that we rely on the fact that wxNORMAL_FONT itself is not
+    // initialized using this ctor, but from native font info.
+    m_pointSize = size == -1 || size == wxDEFAULT
+                    ? wxNORMAL_FONT->GetPointSize()
+                    : size;
     m_family = family;
     m_style = style;
     m_weight = weight;