pango r2566 - in trunk: . pango
- From: tml svn gnome org
- To: svn-commits-list gnome org
- Subject: pango r2566 - in trunk: . pango
- Date: Wed, 13 Feb 2008 23:29:13 +0000 (GMT)
Author: tml
Date: Wed Feb 13 23:29:12 2008
New Revision: 2566
URL: http://svn.gnome.org/viewvc/pango?rev=2566&view=rev
Log:
2008-02-14 Tor Lillqvist <tml novell com>
Bug 515484: Pango on Windows is missing non-TrueType
font support
Patch from Adrian Johnson.
* pango/pangowin32-fontmap.c (pango_win32_enum_proc): Accept also
OpenType/PS fonts. Interpret the metrics parameter as a
NEWTEXTMETRICW struct and check the ntmFlags field.
Modified:
trunk/ChangeLog
trunk/pango/pangowin32-fontmap.c
Modified: trunk/pango/pangowin32-fontmap.c
==============================================================================
--- trunk/pango/pangowin32-fontmap.c (original)
+++ trunk/pango/pangowin32-fontmap.c Wed Feb 13 23:29:12 2008
@@ -53,6 +53,10 @@
GSList *logfontws;
};
+#if !defined(NTM_PS_OPENTYPE)
+# define NTM_PS_OPENTYPE 0x20000
+#endif
+
#define PANGO_WIN32_TYPE_FAMILY (pango_win32_family_get_type ())
#define PANGO_WIN32_FAMILY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_WIN32_TYPE_FAMILY, PangoWin32Family))
#define PANGO_WIN32_IS_FAMILY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_WIN32_TYPE_FAMILY))
@@ -181,23 +185,25 @@
}
static int CALLBACK
-pango_win32_enum_proc (LOGFONTW *lfp,
- TEXTMETRICW *metrics,
- DWORD fontType,
- LPARAM lParam)
+pango_win32_enum_proc (LOGFONTW *lfp,
+ NEWTEXTMETRICW *metrics,
+ DWORD fontType,
+ LPARAM lParam)
{
LOGFONTW lf;
- PING(("%S", lfp->lfFaceName));
-
- if (fontType != TRUETYPE_FONTTYPE)
- return 1;
+ PING(("%S: %lu %lx", lfp->lfFaceName, fontType, metrics->ntmFlags));
- lf = *lfp;
+ if (fontType == TRUETYPE_FONTTYPE ||
+ (_pango_win32_os_version_info.dwMajorVersion >= 5 &&
+ (metrics->ntmFlags & NTM_PS_OPENTYPE)))
+ {
+ lf = *lfp;
- EnumFontFamiliesExW (_pango_win32_hdc, &lf,
- (FONTENUMPROCW) pango_win32_inner_enum_proc,
- lParam, 0);
+ EnumFontFamiliesExW (_pango_win32_hdc, &lf,
+ (FONTENUMPROCW) pango_win32_inner_enum_proc,
+ lParam, 0);
+ }
return 1;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]