From 550e53b6bb685e806ccce392c6c6acb52cd17a2d Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 12 Feb 2013 13:56:41 +0100 Subject: [PATCH] user32: Prefer loading color cursors in LoadImage. --- dlls/user32/cursoricon.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/dlls/user32/cursoricon.c b/dlls/user32/cursoricon.c index 5b21101ec45..df11f56f00a 100644 --- a/dlls/user32/cursoricon.c +++ b/dlls/user32/cursoricon.c @@ -2619,6 +2619,8 @@ HANDLE WINAPI LoadImageA( HINSTANCE hinst, LPCSTR name, UINT type, HANDLE WINAPI LoadImageW( HINSTANCE hinst, LPCWSTR name, UINT type, INT desiredx, INT desiredy, UINT loadflags ) { + int depth; + TRACE_(resource)("(%p,%s,%d,%d,%d,0x%08x)\n", hinst,debugstr_w(name),type,desiredx,desiredy,loadflags); @@ -2628,18 +2630,14 @@ HANDLE WINAPI LoadImageW( HINSTANCE hinst, LPCWSTR name, UINT type, return BITMAP_Load( hinst, name, desiredx, desiredy, loadflags ); case IMAGE_ICON: - if (!screen_dc) screen_dc = CreateDCW( DISPLAYW, NULL, NULL, NULL ); - if (screen_dc) + case IMAGE_CURSOR: + depth = 1; + if (!(loadflags & LR_MONOCHROME)) { - return CURSORICON_Load(hinst, name, desiredx, desiredy, - GetDeviceCaps(screen_dc, BITSPIXEL), - FALSE, loadflags); + if (!screen_dc) screen_dc = CreateDCW( DISPLAYW, NULL, NULL, NULL ); + if (screen_dc) depth = GetDeviceCaps( screen_dc, BITSPIXEL ); } - break; - - case IMAGE_CURSOR: - return CURSORICON_Load(hinst, name, desiredx, desiredy, - 1, TRUE, loadflags); + return CURSORICON_Load(hinst, name, desiredx, desiredy, depth, (type == IMAGE_CURSOR), loadflags); } return 0; } -- 2.11.4.GIT