Rebase against adda27cdb82fd40ef71e554b8ba17244cb871710.

This commit is contained in:
Alistair Leslie-Hughes
2022-02-03 11:11:23 +11:00
parent ecf05ee19e
commit 136d5e3400
5 changed files with 31 additions and 28 deletions

View File

@@ -1,4 +1,4 @@
From 6b66550b43ca3a870b6d8a8eb2aaef7001d8abc0 Mon Sep 17 00:00:00 2001
From e4e08d2ff648f1021d9833f7ea986c42dfc642ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= <gabrielopcode@gmail.com>
Date: Fri, 30 Nov 2018 12:20:40 +0200
Subject: [PATCH] shell32/iconcache: Generate icons from available icons if
@@ -19,11 +19,11 @@ smaller icons are only picked if no other available icon is larger).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45696
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
---
dlls/shell32/iconcache.c | 68 +++++++++++++++++++++++++++++++++-------
1 file changed, 57 insertions(+), 11 deletions(-)
dlls/shell32/iconcache.c | 72 +++++++++++++++++++++++++++++++---------
1 file changed, 57 insertions(+), 15 deletions(-)
diff --git a/dlls/shell32/iconcache.c b/dlls/shell32/iconcache.c
index f1d95e851eb..9d5f8b1c04a 100644
index 1c61374a732..a1c91f4785e 100644
--- a/dlls/shell32/iconcache.c
+++ b/dlls/shell32/iconcache.c
@@ -21,6 +21,7 @@
@@ -34,21 +34,25 @@ index f1d95e851eb..9d5f8b1c04a 100644
#define COBJMACROS
@@ -339,13 +340,6 @@ static INT SIC_IconAppend (const WCHAR *sourcefile, INT src_index, HICON *hicons
@@ -335,17 +336,6 @@ static INT SIC_IconAppend (const WCHAR *sourcefile, INT src_index, HICON *hicons
return ret;
}
-static BOOL get_imagelist_icon_size(int list, SIZE *size)
-{
- int cx, cy;
- if (list < 0 || list >= ARRAY_SIZE(shell_imagelists)) return FALSE;
-
- return ImageList_GetIconSize( shell_imagelists[list], &size->cx, &size->cy );
- if (!ImageList_GetIconSize( shell_imagelists[list], &cx, &cy )) return FALSE;
- size->cx = cx;
- size->cy = cy;
- return TRUE;
-}
-
/****************************************************************************
* SIC_LoadIcon [internal]
*
@@ -356,15 +350,67 @@ static INT SIC_LoadIcon (const WCHAR *sourcefile, INT index, DWORD flags)
@@ -356,15 +346,67 @@ static INT SIC_LoadIcon (const WCHAR *sourcefile, INT index, DWORD flags)
{
HICON hicons[ARRAY_SIZE(shell_imagelists)] = { 0 };
HICON hshortcuts[ARRAY_SIZE(hicons)] = { 0 };
@@ -60,8 +64,8 @@ index f1d95e851eb..9d5f8b1c04a 100644
+ /* Keep track of the sizes in case any icon fails to get extracted */
for (i = 0; i < ARRAY_SIZE(hicons); i++)
{
- get_imagelist_icon_size( i, &size );
- if (!PrivateExtractIconsW( sourcefile, index, size.cx, size.cy, &hicons[i], 0, 1, 0 ))
- if (!get_imagelist_icon_size( i, &size ) ||
- !PrivateExtractIconsW( sourcefile, index, size.cx, size.cy, &hicons[i], 0, 1, 0 ))
- WARN("Failed to load icon %d from %s.\n", index, debugstr_w(sourcefile));
+ ImageList_GetIconSize(shell_imagelists[i], &size[i].cx, &size[i].cy);
+ PrivateExtractIconsW(sourcefile, index, size[i].cx, size[i].cy, &hicons[i], 0, 1, 0);
@@ -121,5 +125,5 @@ index f1d95e851eb..9d5f8b1c04a 100644
}
--
2.33.0
2.34.1