https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3b3741c10af77bd54184e9d271206ac017e73b34
commit 3b3741c10af77bd54184e9d271206ac017e73b34 Author: Katayama Hirofumi MZ <katayama.hirofumi...@gmail.com> AuthorDate: Wed Jan 29 20:20:25 2025 +0900 Commit: GitHub <nore...@github.com> CommitDate: Wed Jan 29 20:20:25 2025 +0900 [NTUSER] Enable SM_CXICON etc. settings from registry (#7679) Improve usability. JIRA issue: CORE-12905 - Add nIconSize and nSmallIconSize values to SPIVALUES structure. - Load "Shell Icon Size" and "Shell Small Icon Size" values from registry. - Enable changing of SM_CXICON, SM_CYICON, SM_CXSMICON, and SM_CYSMICON settings. --- win32ss/user/ntuser/metric.c | 9 +++++---- win32ss/user/ntuser/sysparams.c | 10 ++++++++++ win32ss/user/ntuser/sysparams.h | 3 +++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/win32ss/user/ntuser/metric.c b/win32ss/user/ntuser/metric.c index e070bb0fa51..4ece647717f 100644 --- a/win32ss/user/ntuser/metric.c +++ b/win32ss/user/ntuser/metric.c @@ -5,6 +5,7 @@ * FILE: win32ss/user/ntuser/metric.c * PROGRAMER: Casper S. Hornstrup (cho...@users.sourceforge.net) * Timo Kreuzer (timo.kreu...@reactos.org) + * Katayama Hirofumi MZ (katayama.hirofumi...@gmail.com) */ #include <win32k.h> @@ -130,10 +131,10 @@ InitMetrics(VOID) piSysMet[SM_CXHTHUMB] = gspv.ncm.iScrollHeight; // 16; piSysMet[SM_CYVSCROLL] = gspv.ncm.iScrollHeight; // 16 piSysMet[SM_CXHSCROLL] = gspv.ncm.iScrollHeight; // 16; - piSysMet[SM_CXICON] = 32; - piSysMet[SM_CYICON] = 32; - piSysMet[SM_CXSMICON] = 16; - piSysMet[SM_CYSMICON] = 16; + piSysMet[SM_CXICON] = gspv.nIconSize; // 32 + piSysMet[SM_CYICON] = gspv.nIconSize; // 32 + piSysMet[SM_CXSMICON] = gspv.nSmallIconSize; // 16 + piSysMet[SM_CYSMICON] = gspv.nSmallIconSize; // 16 piSysMet[SM_CXICONSPACING] = gspv.im.iHorzSpacing; // 64; piSysMet[SM_CYICONSPACING] = gspv.im.iVertSpacing; // 64; piSysMet[SM_CXCURSOR] = 32; diff --git a/win32ss/user/ntuser/sysparams.c b/win32ss/user/ntuser/sysparams.c index 59cc76f13f9..538d18bb341 100644 --- a/win32ss/user/ntuser/sysparams.c +++ b/win32ss/user/ntuser/sysparams.c @@ -4,6 +4,7 @@ * PURPOSE: System parameters functions * FILE: win32ss/user/ntuser/sysparams.c * PROGRAMER: Timo Kreuzer (timo.kreu...@reactos.org) + * Katayama Hirofumi MZ (katayama.hirofumi...@gmail.com) */ // TODO: @@ -205,6 +206,11 @@ SpiFixupValues(VOID) // gspv.tmMenuFont.tmExternalLeading); if (gspv.iDblClickTime == 0) gspv.iDblClickTime = 500; + if (gspv.nIconSize <= 0) + gspv.nIconSize = 32; + if (gspv.nSmallIconSize <= 0) + gspv.nSmallIconSize = 16; + // FIXME: Hack!!! gspv.tmMenuFont.tmHeight = 11; gspv.tmMenuFont.tmExternalLeading = 2; @@ -296,6 +302,10 @@ SpiUpdatePerUserSystemParameters(VOID) gspv.im.iTitleWrap = SpiLoadMetric(VAL_ITWRAP, 1); SpiLoadFont(&gspv.im.lfFont, L"IconFont", &lf1); + /* Load icon size */ + gspv.nIconSize = SpiLoadInt(KEY_METRIC, L"Shell Icon Size", 32); + gspv.nSmallIconSize = SpiLoadInt(KEY_METRIC, L"Shell Small Icon Size", 16); + /* Load desktop settings */ gspv.bDragFullWindows = SpiLoadInt(KEY_DESKTOP, VAL_DRAG, 0); gspv.iWheelScrollLines = SpiLoadInt(KEY_DESKTOP, VAL_SCRLLLINES, 3); diff --git a/win32ss/user/ntuser/sysparams.h b/win32ss/user/ntuser/sysparams.h index 0b564f86099..dafb7f4b181 100644 --- a/win32ss/user/ntuser/sysparams.h +++ b/win32ss/user/ntuser/sysparams.h @@ -157,6 +157,9 @@ typedef struct _SPIVALUES DWORD dwForegroundFlashCount; DWORD dwCaretWidth; + INT nIconSize; + INT nSmallIconSize; + // SPI_LANGDRIVER // SPI_SETDESKPATTERN // SPI_SETPENWINDOWS