[PATCH 0/2] MR4388: user32: Return DEFAULT_CHARSET from SPI_GETICONTITLELOGFONT and SPI_GETNONCLIENTMETRICS.
From: Dmitry Timoshkov <dmitry(a)baikal.ru> Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru> --- dlls/user32/tests/sysparams.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/dlls/user32/tests/sysparams.c b/dlls/user32/tests/sysparams.c index 12cbf630319..a6bdf73dd34 100644 --- a/dlls/user32/tests/sysparams.c +++ b/dlls/user32/tests/sysparams.c @@ -4136,6 +4136,31 @@ static void test_GetAutoRotationState(void) ok(ret, "Expected GetAutoRotationState to succeed, error %ld\n", GetLastError()); } +static void test_LOGFONT_charset(void) +{ + CHARSETINFO csi; + LOGFONTA lf; + NONCLIENTMETRICSA ncm; + BOOL ret; + + ret = TranslateCharsetInfo(ULongToPtr(GetACP()), &csi, TCI_SRCCODEPAGE); + ok(ret, "TranslateCharsetInfo(%d) error %lu\n", GetACP(), GetLastError()); + + GetObjectA(GetStockObject(DEFAULT_GUI_FONT), sizeof(lf), &lf); + ok(lf.lfCharSet == csi.ciCharset, "got %d, expected %d\n", lf.lfCharSet, csi.ciCharset); + + ret = SystemParametersInfoA(SPI_GETICONTITLELOGFONT, sizeof(lf), &lf, FALSE); + ok(ret, "SystemParametersInfoW error %lu\n", GetLastError()); + todo_wine + ok(lf.lfCharSet == DEFAULT_CHARSET, "got %d\n", lf.lfCharSet); + + ncm.cbSize = FIELD_OFFSET(NONCLIENTMETRICSA, iPaddedBorderWidth); + ret = SystemParametersInfoA(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0); + ok(ret, "SystemParametersInfoW error %lu\n", GetLastError()); + todo_wine + ok(ncm.lfCaptionFont.lfCharSet == DEFAULT_CHARSET, "got %d\n", ncm.lfCaptionFont.lfCharSet); +} + START_TEST(sysparams) { int argc; @@ -4183,6 +4208,8 @@ START_TEST(sysparams) strict=(argc >= 3 && strcmp(argv[2],"strict")==0); trace("strict=%d\n",strict); + test_LOGFONT_charset(); + trace("testing GetSystemMetrics with your current desktop settings\n"); test_GetSystemMetrics( ); test_metrics_for_dpi( 192 ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4388
From: Dmitry Timoshkov <dmitry(a)baikal.ru> Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru> --- dlls/user32/tests/sysparams.c | 3 +-- dlls/win32u/sysparams.c | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dlls/user32/tests/sysparams.c b/dlls/user32/tests/sysparams.c index a6bdf73dd34..e6a296f5d3a 100644 --- a/dlls/user32/tests/sysparams.c +++ b/dlls/user32/tests/sysparams.c @@ -4151,14 +4151,13 @@ static void test_LOGFONT_charset(void) ret = SystemParametersInfoA(SPI_GETICONTITLELOGFONT, sizeof(lf), &lf, FALSE); ok(ret, "SystemParametersInfoW error %lu\n", GetLastError()); - todo_wine ok(lf.lfCharSet == DEFAULT_CHARSET, "got %d\n", lf.lfCharSet); ncm.cbSize = FIELD_OFFSET(NONCLIENTMETRICSA, iPaddedBorderWidth); ret = SystemParametersInfoA(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0); ok(ret, "SystemParametersInfoW error %lu\n", GetLastError()); - todo_wine ok(ncm.lfCaptionFont.lfCharSet == DEFAULT_CHARSET, "got %d\n", ncm.lfCaptionFont.lfCharSet); + ok(ncm.lfSmCaptionFont.lfCharSet == DEFAULT_CHARSET, "got %d\n", ncm.lfSmCaptionFont.lfCharSet); } START_TEST(sysparams) diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c index 4f2a299dd16..5bd4cfe566b 100644 --- a/dlls/win32u/sysparams.c +++ b/dlls/win32u/sysparams.c @@ -4242,12 +4242,14 @@ static BOOL get_font_entry( union sysparam_all_entry *entry, UINT int_param, voi switch (load_entry( &entry->hdr, &font, sizeof(font) )) { case sizeof(font): + font.lfCharSet = DEFAULT_CHARSET; if (font.lfHeight > 0) /* positive height value means points ( inch/72 ) */ font.lfHeight = -muldiv( font.lfHeight, USER_DEFAULT_SCREEN_DPI, 72 ); entry->font.val = font; break; case sizeof(LOGFONT16): /* win9x-winME format */ logfont16to32( (LOGFONT16 *)&font, &entry->font.val ); + entry->font.val.lfCharSet = DEFAULT_CHARSET; if (entry->font.val.lfHeight > 0) entry->font.val.lfHeight = -muldiv( entry->font.val.lfHeight, USER_DEFAULT_SCREEN_DPI, 72 ); break; @@ -4258,6 +4260,7 @@ static BOOL get_font_entry( union sysparam_all_entry *entry, UINT int_param, voi /* fall through */ case 0: /* use the default GUI font */ NtGdiExtGetObjectW( GetStockObject( DEFAULT_GUI_FONT ), sizeof(font), &font ); + font.lfCharSet = DEFAULT_CHARSET; font.lfHeight = map_from_system_dpi( font.lfHeight ); font.lfWeight = entry->font.weight; entry->font.val = font; @@ -4297,6 +4300,7 @@ static BOOL set_font_entry( union sysparam_all_entry *entry, UINT int_param, voi static BOOL init_font_entry( union sysparam_all_entry *entry ) { NtGdiExtGetObjectW( GetStockObject( DEFAULT_GUI_FONT ), sizeof(entry->font.val), &entry->font.val ); + entry->font.val.lfCharSet = DEFAULT_CHARSET; entry->font.val.lfHeight = map_from_system_dpi( entry->font.val.lfHeight ); entry->font.val.lfWeight = entry->font.weight; get_real_fontname( &entry->font.val, entry->font.fullname ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4388
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=139872 Your paranoid android. === build (build log) === error: patch failed: dlls/user32/tests/sysparams.c:4151 Task: Patch failed to apply === debian11 (build log) === error: patch failed: dlls/user32/tests/sysparams.c:4151 Task: Patch failed to apply === debian11b (build log) === error: patch failed: dlls/user32/tests/sysparams.c:4151 Task: Patch failed to apply
participants (3)
-
Dmitry Timoshkov -
Dmitry Timoshkov (@dmitry) -
Marvin