[pango] coretext: use public function to obtain cascade list if available
- From: Kristian Rietveld <kristian src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango] coretext: use public function to obtain cascade list if available
- Date: Wed, 6 May 2015 18:18:21 +0000 (UTC)
commit 61dd7da69458e8443343eb71d7336b458f834700
Author: Kristian Rietveld <kris loopnest org>
Date: Sun Apr 26 23:15:19 2015 +0200
coretext: use public function to obtain cascade list if available
We use a compile-time check: if compiling for platforms 10.8 or higher,
use the public function, otherwise use the undocumented function.
Fixes bug 737813.
pango/pangocoretext-fontmap.c | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
---
diff --git a/pango/pangocoretext-fontmap.c b/pango/pangocoretext-fontmap.c
index 159bedb..65be356 100644
--- a/pango/pangocoretext-fontmap.c
+++ b/pango/pangocoretext-fontmap.c
@@ -1522,10 +1522,12 @@ G_DEFINE_TYPE (PangoCoreTextFontset,
pango_core_text_fontset,
PANGO_TYPE_FONTSET);
+#if !defined(MAC_OS_X_VERSION_10_8) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8
/* This symbol does exist in the CoreText library shipped with Snow
* Leopard and Lion, however, it is not found in the public header files.
*/
CFArrayRef CTFontCopyDefaultCascadeList (CTFontRef font_ref);
+#endif
static PangoCoreTextFontset *
pango_core_text_fontset_new (PangoCoreTextFontsetKey *key,
@@ -1589,7 +1591,28 @@ pango_core_text_fontset_new (PangoCoreTextFontsetKey *key,
fontset->coverages = g_ptr_array_new ();
/* Add the cascade list for this language */
+#if defined(MAC_OS_X_VERSION_10_8) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
+ {
+ CFArrayRef language_pref_list;
+ CFStringRef languages[1];
+
+ languages[0] = CFStringCreateWithCString (NULL,
+ pango_language_to_string (key->language),
+ kCFStringEncodingASCII);
+ language_pref_list = CFArrayCreate (kCFAllocatorDefault,
+ (const void **) languages,
+ 1,
+ &kCFTypeArrayCallBacks);
+ fontset->cascade_list = CTFontCopyDefaultCascadeListForLanguages (pango_core_text_font_get_ctfont
(best_font), language_pref_list);
+ CFRelease (languages[0]);
+ CFRelease (language_pref_list);
+ }
+#else
+ /* There is unfortunately no public API to retrieve the cascade list
+ * on Mac OS X < 10.8, so we use the following undocumented public function.
+ */
fontset->cascade_list = CTFontCopyDefaultCascadeList (pango_core_text_font_get_ctfont (best_font));
+#endif
/* length of cascade list + 1 for the "real" font at the front */
g_ptr_array_set_size (fontset->fonts, CFArrayGetCount (fontset->cascade_list) + 1);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]