[2/2] gdi32: Add support for FR_NOT_ENUM to AddFontResource().
Dmitry Timoshkov
dmitry at codeweavers.com
Wed Oct 27 04:30:43 CDT 2010
---
dlls/gdi32/freetype.c | 22 +++++++++++-----------
1 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index c35e332..cc9b722 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -1892,7 +1892,7 @@ LOAD_FUNCPTR(FcPatternGetString);
return;
}
-static BOOL load_font_from_data_dir(LPCWSTR file)
+static BOOL load_font_from_data_dir(LPCWSTR file, DWORD flags)
{
BOOL ret = FALSE;
const char *data_dir = wine_get_data_dir();
@@ -1914,14 +1914,14 @@ static BOOL load_font_from_data_dir(LPCWSTR file)
WideCharToMultiByte(CP_UNIXCP, 0, file, -1, unix_name + strlen(unix_name), len, NULL, NULL);
EnterCriticalSection( &freetype_cs );
- ret = AddFontFileToList(unix_name, NULL, NULL, ADDFONT_FORCE_BITMAP, NULL);
+ ret = AddFontFileToList(unix_name, NULL, NULL, flags, NULL);
LeaveCriticalSection( &freetype_cs );
HeapFree(GetProcessHeap(), 0, unix_name);
}
return ret;
}
-static BOOL load_font_from_winfonts_dir(LPCWSTR file)
+static BOOL load_font_from_winfonts_dir(LPCWSTR file, DWORD flags)
{
static const WCHAR slashW[] = {'\\','\0'};
BOOL ret = FALSE;
@@ -1934,7 +1934,7 @@ static BOOL load_font_from_winfonts_dir(LPCWSTR file)
strcatW(windowsdir, file);
if ((unixname = wine_get_unix_file_name(windowsdir))) {
EnterCriticalSection( &freetype_cs );
- ret = AddFontFileToList(unixname, NULL, NULL, ADDFONT_FORCE_BITMAP, NULL);
+ ret = AddFontFileToList(unixname, NULL, NULL, flags, NULL);
LeaveCriticalSection( &freetype_cs );
HeapFree(GetProcessHeap(), 0, unixname);
}
@@ -1965,7 +1965,7 @@ static void load_system_fonts(void)
HeapFree(GetProcessHeap(), 0, unixname);
}
if (!added)
- load_font_from_data_dir(data);
+ load_font_from_data_dir(data, ADDFONT_FORCE_BITMAP);
}
}
RegCloseKey(hkey);
@@ -2127,25 +2127,25 @@ INT WineEngAddFontResourceEx(LPCWSTR file, DWORD flags, PVOID pdv)
if (ft_handle) /* do it only if we have freetype up and running */
{
char *unixname;
+ DWORD add_font_flags = ADDFONT_FORCE_BITMAP;
- if(flags)
- FIXME("Ignoring flags %x\n", flags);
+ if (flags & FR_NOT_ENUM) add_font_flags |= ADDFONT_HIDDEN;
if((unixname = wine_get_unix_file_name(file)))
{
EnterCriticalSection( &freetype_cs );
- ret = AddFontFileToList(unixname, NULL, NULL, ADDFONT_FORCE_BITMAP, NULL);
+ ret = AddFontFileToList(unixname, NULL, NULL, add_font_flags, NULL);
LeaveCriticalSection( &freetype_cs );
HeapFree(GetProcessHeap(), 0, unixname);
}
if (!ret && !strchrW(file, '\\')) {
/* Try in %WINDIR%/fonts, needed for Fotobuch Designer */
- ret = load_font_from_winfonts_dir(file);
+ ret = load_font_from_winfonts_dir(file, add_font_flags);
if (!ret) {
/* Try in datadir/fonts (or builddir/fonts),
* needed for Magic the Gathering Online
*/
- ret = load_font_from_data_dir(file);
+ ret = load_font_from_data_dir(file, add_font_flags);
}
}
}
@@ -2847,7 +2847,7 @@ BOOL WineEngInit(void)
HeapFree(GetProcessHeap(), 0, unixname);
}
if (!added)
- load_font_from_data_dir(data);
+ load_font_from_data_dir(data, ADDFONT_FORCE_BITMAP);
}
/* reset dlen and vlen */
dlen = datalen;
--
1.7.0.6
More information about the wine-patches
mailing list