Alexandre Julliard : user32: Use the default GUI font for unspecified font parameters.
Alexandre Julliard
julliard at winehq.org
Thu Nov 15 15:26:31 CST 2012
Module: wine
Branch: master
Commit: bfc8bc4d27e5abee5e483ef6dca518a49aab6c67
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bfc8bc4d27e5abee5e483ef6dca518a49aab6c67
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Nov 15 13:28:22 2012 +0100
user32: Use the default GUI font for unspecified font parameters.
---
dlls/user32/sysparams.c | 52 ++++++++++-------------------------------------
1 files changed, 11 insertions(+), 41 deletions(-)
diff --git a/dlls/user32/sysparams.c b/dlls/user32/sysparams.c
index fa97815..8519142 100644
--- a/dlls/user32/sysparams.c
+++ b/dlls/user32/sysparams.c
@@ -361,6 +361,7 @@ struct sysparam_binary_entry
struct sysparam_font_entry
{
struct sysparam_entry hdr;
+ UINT weight;
LOGFONTW val;
};
@@ -1193,7 +1194,12 @@ static BOOL get_font_entry( union sysparam_all_entry *entry, UINT int_param, voi
{
LOGFONTW font;
- if (!reg_get_logfont( entry->hdr.regkey, entry->hdr.regval, &font )) return FALSE;
+ if (!reg_get_logfont( entry->hdr.regkey, entry->hdr.regval, &font ))
+ {
+ /* use the default GUI font */
+ GetObjectW( GetStockObject( DEFAULT_GUI_FONT ), sizeof(font), &font );
+ font.lfWeight = entry->font.weight;
+ }
entry->font.val = font;
entry->hdr.loaded = TRUE;
}
@@ -1331,9 +1337,9 @@ static BOOL set_entry( void *ptr, UINT int_param, void *ptr_param, UINT flags )
struct sysparam_binary_entry entry_##name = { { get_binary_entry, set_binary_entry, \
SPI_SET ## name ##_REGKEY, SPI_SET ## name ##_VALNAME }, &(data), sizeof(data) }
-#define FONT_ENTRY(name) \
+#define FONT_ENTRY(name,weight) \
struct sysparam_font_entry entry_##name = { { get_font_entry, set_font_entry, \
- SPI_SET ## name ##_REGKEY, SPI_SET ## name ##_VALNAME } }
+ SPI_SET ## name ##_REGKEY, SPI_SET ## name ##_VALNAME }, (weight) }
#define USERPREF_ENTRY(name,offset,mask) \
struct sysparam_pref_entry entry_##name = { { get_userpref_entry, set_userpref_entry }, \
@@ -1400,7 +1406,7 @@ static DWORD_ENTRY( MOUSECLICKLOCKTIME, 1200 );
static BYTE user_prefs[8] = { 0x30, 0x00, 0x02, 0x80, 0x10, 0x00, 0x00, 0x00 };
static BINARY_ENTRY( USERPREFERENCESMASK, user_prefs );
-static FONT_ENTRY( ICONTITLELOGFONT );
+static FONT_ENTRY( ICONTITLELOGFONT, FW_NORMAL );
static USERPREF_ENTRY( MENUANIMATION, 0, 0x02 );
static USERPREF_ENTRY( COMBOBOXANIMATION, 0, 0x04 );
@@ -1599,43 +1605,7 @@ BOOL WINAPI SystemParametersInfoW( UINT uiAction, UINT uiParam,
ret = set_entry( &entry_DOUBLECLKHEIGHT, uiParam, pvParam, fWinIni );
break;
case SPI_GETICONTITLELOGFONT:
- if (!pvParam) return FALSE;
- if (!get_entry( &entry_ICONTITLELOGFONT, uiParam, pvParam ))
- {
- LOGFONTW lfDefault, *font = &entry_ICONTITLELOGFONT.val;
- INT r;
-
- /*
- * The 'default GDI fonts' seems to be returned.
- * If a returned font is not a correct font in your environment,
- * please try to fix objects/gdiobj.c at first.
- */
- GetObjectW( GetStockObject( DEFAULT_GUI_FONT ), sizeof(LOGFONTW), &lfDefault );
-
- GetProfileStringW( Desktop, IconTitleFaceName, lfDefault.lfFaceName,
- font->lfFaceName, LF_FACESIZE );
-
- r = GetProfileIntW( Desktop, IconTitleSize, 0 );
- if (r)
- font->lfHeight = -r;
- else
- font->lfHeight = lfDefault.lfHeight;
-
- font->lfWidth = 0;
- font->lfEscapement = 0;
- font->lfOrientation = 0;
- font->lfWeight = FW_NORMAL;
- font->lfItalic = FALSE;
- font->lfStrikeOut = FALSE;
- font->lfUnderline = FALSE;
- font->lfCharSet = lfDefault.lfCharSet; /* at least 'charset' should not be hard-coded */
- font->lfOutPrecision = OUT_DEFAULT_PRECIS;
- font->lfClipPrecision = CLIP_DEFAULT_PRECIS;
- font->lfQuality = DEFAULT_QUALITY;
- font->lfPitchAndFamily = DEFAULT_PITCH;
- entry_ICONTITLELOGFONT.hdr.loaded = TRUE;
- *(LOGFONTW *)pvParam = *font;
- }
+ ret = get_entry( &entry_ICONTITLELOGFONT, uiParam, pvParam );
break;
case SPI_SETDOUBLECLICKTIME:
ret = set_entry( &entry_DOUBLECLICKTIME, uiParam, pvParam, fWinIni );
More information about the wine-cvs
mailing list