https://git.reactos.org/?p=reactos.git;a=commitdiff;h=887764e6075fdde7fb81d2a54d5255164c046511

commit 887764e6075fdde7fb81d2a54d5255164c046511
Author:     Jose Carlos Jesus <[email protected]>
AuthorDate: Thu May 21 20:52:13 2020 +0100
Commit:     Stanislav Motylkov <[email protected]>
CommitDate: Sun Aug 16 18:42:12 2020 +0300

    [COMCTL32] Fix issue on showing current mouse pointer (#2829)
    
    GetIconInfo() fill info.hbmColor with NULL HBITMAP handle on black/white 
bitmaps.
    
    CORE-17062
---
 dll/win32/comctl32/static.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/dll/win32/comctl32/static.c b/dll/win32/comctl32/static.c
index f136f2cc79c..b30f0532f3a 100644
--- a/dll/win32/comctl32/static.c
+++ b/dll/win32/comctl32/static.c
@@ -94,11 +94,24 @@ static BOOL get_icon_size( HICON handle, SIZE *size )
     if (!GetIconInfo(handle, &info))
         return FALSE;
 
+#ifdef __REACTOS__
+    ret = GetObjectW(info.hbmMask, sizeof(bmp), &bmp);
+#else
     ret = GetObjectW(info.hbmColor, sizeof(bmp), &bmp);
+#endif
     if (ret)
     {
         size->cx = bmp.bmWidth;
         size->cy = bmp.bmHeight;
+#ifdef __REACTOS__
+        /*
+            If this structure defines a black and white icon, this bitmask is 
formatted 
+            so that the upper half is the icon AND bitmask and the lower half 
is 
+            the icon XOR bitmask. 
+        */
+        if (!info.hbmColor)
+            size->cy /= 2;
+#endif
     }
 
     DeleteObject(info.hbmMask);

Reply via email to