3188dcde47cb0ab305ead7c58f2dfb948f504ba6
[mono.git] / bockbuild / mac-sdk / patches / pango-system-font-check-version.patch
1 diff --git a/pango/pangocairo-coretextfontmap.c b/pango/pangocairo-coretextfontmap.c
2 index 6cb3809..c75737c 100644
3 --- a/pango/pangocairo-coretextfontmap.c
4 +++ b/pango/pangocairo-coretextfontmap.c
5 @@ -185,9 +185,13 @@ pango_cairo_core_text_font_map_load_font (PangoCoreTextFontMap       *fontmap,
6                                            PangoContext               *context,
7                                            const PangoFontDescription *description)
8  {
9 -  char *descname = pango_font_description_get_family (description);
10 +  const char *descname = pango_font_description_get_family (description);
11 +  SInt32 major, minor;
12
13 -  if (strcmp (descname, "-apple-system-font") == 0)
14 +  Gestalt (gestaltSystemVersionMajor, &major);
15 +  Gestalt (gestaltSystemVersionMinor, &minor);
16 +
17 +  if (major == 10 && minor>= 11 && strcmp (descname, "-apple-system-font") == 0)
18      {
19        PangoCoreTextFont *cfont;
20        NSFont *sysfont;
21 @@ -195,7 +199,6 @@ pango_cairo_core_text_font_map_load_font (PangoCoreTextFontMap       *fontmap,
22        cairo_matrix_t font_matrix;
23        PangoCoreTextFontsetKey fontset_key;
24        PangoCoreTextFontKey key;
25 -      PangoLanguage *language;
26        PangoFontDescription *tmp_desc;
27        gboolean synthetic_italic = FALSE;
28        double abs_size = get_scaled_size (fontmap, context, description);
29 @@ -207,7 +210,7 @@ pango_cairo_core_text_font_map_load_font (PangoCoreTextFontMap       *fontmap,
30        PangoCairoCoreTextFont *cafont = g_object_new (PANGO_TYPE_CAIRO_CORE_TEXT_FONT, NULL);
31        cfont = PANGO_CORE_TEXT_FONT (cafont);
32        cafont->abs_size = abs_size;
33 -      _pango_core_text_font_set_ctfont (cfont, CFRetain (sysfont));
34 +      _pango_core_text_font_set_ctfont (cfont, (CTFontRef)CFRetain (sysfont));
35
36        tmp_desc = pango_font_description_copy_static (description);
37
38 @@ -261,7 +264,7 @@ pango_cairo_core_text_font_map_load_font (PangoCoreTextFontMap       *fontmap,
39          }
40      }
41
42 -  return PANGO_FONT_MAP_CLASS (pango_cairo_core_text_font_map_parent_class)->load_font (fontmap, context, description);
43 +  return (PangoCoreTextFont*) PANGO_FONT_MAP_CLASS (pango_cairo_core_text_font_map_parent_class)->load_font (PANGO_FONT_MAP (fontmap), context, description);
44  }
45
46  static void
47 diff --git a/pango/pangocoretext-fontmap.c b/pango/pangocoretext-fontmap.c
48 index 4234bf1..c395c91 100644
49 --- a/pango/pangocoretext-fontmap.c
50 +++ b/pango/pangocoretext-fontmap.c
51 @@ -1367,6 +1367,7 @@ pango_core_text_font_map_init (PangoCoreTextFontMap *ctfontmap)
52    CTFontCollectionRef collection;
53    CFArrayRef ctfaces;
54    CFIndex i, count;
55 +  SInt32 major, minor;
56
57    ctfontmap->serial = 1;
58    ctfontmap->families = g_hash_table_new_full (g_str_hash, g_str_equal,
59 @@ -1430,7 +1431,10 @@ pango_core_text_font_map_init (PangoCoreTextFontMap *ctfontmap)
60        CFRelease (dict);
61      }
62
63 -  if (true)
64 +  Gestalt (gestaltSystemVersionMajor, &major);
65 +  Gestalt (gestaltSystemVersionMinor, &minor);
66 +
67 +  if (major == 10 && minor >= 11)
68      {
69        NSFont *sysfont = [NSFont systemFontOfSize: 0.0];
70        NSString *name = [[NSFont fontWithName: [[sysfont fontDescriptor] postscriptName] size: 0.0] familyName];