@@ -15,6 +15,7 @@ using namespace Gdiplus;
1515
1616HICON g_hDefaultPackageIcon = NULL ;
1717static int g_DefaultPackageIconILIdx = I_IMAGENONE;
18+ UINT g_IconSize = 0 ;
1819
1920// **** Menu helpers ****
2021
@@ -1063,9 +1064,11 @@ AsyncLoadIconProc(LPVOID Param)
10631064 if (task->TaskId == g_AsyncIconTaskId)
10641065 {
10651066 HICON hIcon;
1067+ HICON *phBigIcon = SettingsInfo.bSmallIcons ? NULL : &hIcon;
1068+ HICON *phSmallIcon = phBigIcon ? NULL : &hIcon;
10661069 if (!task->Parse )
1067- hIcon = (HICON)LoadImageW (NULL , task->Location , IMAGE_ICON, 0 , 0 , LR_LOADFROMFILE | LR_DEFAULTSIZE );
1068- else if (!ExtractIconExW (task->Location , PathParseIconLocationW (task->Location ), &hIcon, NULL , 1 ))
1070+ hIcon = (HICON)LoadImageW (NULL , task->Location , IMAGE_ICON, g_IconSize, g_IconSize , LR_LOADFROMFILE);
1071+ else if (!ExtractIconExW (task->Location , PathParseIconLocationW (task->Location ), phBigIcon, phSmallIcon , 1 ))
10691072 hIcon = NULL ;
10701073
10711074 if (hIcon)
@@ -1392,13 +1395,14 @@ CAppsListView::SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
13921395 if (!g_hDefaultPackageIcon)
13931396 {
13941397 ImageList_Destroy (m_hImageListView);
1395- UINT IconSize = GetSystemMetrics (SM_CXICON);
1398+ g_IconSize = GetSystemMetrics (SettingsInfo.bSmallIcons ? SM_CXSMICON : SM_CXICON);
1399+ g_IconSize = max (g_IconSize, 8 );
13961400 UINT ilc = GetSystemColorDepth () | ILC_MASK;
1397- m_hImageListView = ImageList_Create (IconSize, IconSize , ilc, 0 , 1 );
1401+ m_hImageListView = ImageList_Create (g_IconSize, g_IconSize , ilc, 0 , 1 );
13981402 SetImageList (m_hImageListView, LVSIL_SMALL);
13991403 SetImageList (m_hImageListView, LVSIL_NORMAL);
14001404 g_hDefaultPackageIcon = (HICON)LoadImageW (hInst, MAKEINTRESOURCEW (IDI_MAIN),
1401- IMAGE_ICON, IconSize, IconSize , LR_SHARED);
1405+ IMAGE_ICON, g_IconSize, g_IconSize , LR_SHARED);
14021406 }
14031407 ImageList_RemoveAll (m_hImageListView);
14041408
0 commit comments