Author: jgardou
Date: Tue Jul 13 21:38:34 2010
New Revision: 48031
URL:
http://svn.reactos.org/svn/reactos?rev=48031&view=rev
Log:
[USER32]
- Partly merge 48026
Modified:
trunk/reactos/ (props changed)
trunk/reactos/dll/win32/user32/windows/cursoricon.c
Propchange: trunk/reactos/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jul 13 21:38:34 2010
@@ -1,4 +1,4 @@
/branches/header-work:45691-47721
-/branches/reactos-yarotows:46372,46848,46966,47800
+/branches/reactos-yarotows:46372,46848,46966,47800,48026
/branches/ros-amd64-bringup:36852
/branches/ros-amd64-bringup/reactos:34711-34712,34741,34743,34780-34782,34803,34812,34839,34842,34864,34870,34874,34877,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35655,35683,35739,35746,35762,35771,35777,35781,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36011-36013,36172,36360,36380,36388-36389,36393,36397,36445,36502-36503,36505,36570,36614,36898-36899,36930,36936,36949,36951,36958,36961,36964,36969,36972,36987-36988,36992,37323,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38092,38100,38148-38151,38264-38265,38268,38355,39151,39333,39335,39345,39639,40120,40122-40123,40125,40127-40128,40155,40247,40324,40608,40753,40927-40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41070,41082-41086,41097-41098,41101,41449,41479-41480,41484-41485,41499-41500,41502,41531,41536,41540,41546-41547,41549,43080,43426,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43836,43838-43840,43857-43858,43860,43905-43907,43965,43969,43992,44002,44036-44037,44039-44040,44044-44045,44065,44095,44123,44144,44205,44238,44294,44338-44339,44385,44389,44391,44426,44460,44467-44468,44470-44471,44499,44501,44503-44504,44506,44510-44512,44521,44523-44526,44530,44540,44601,44634,44639,44772,44818,45124,45126-45127,46394,46478,46511,46523-46524,46526,46534-46535,46537-46539,46589,46805,47472,47846-47847,47878,47882
Modified: trunk/reactos/dll/win32/user32/windows/cursoricon.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/c…
==============================================================================
--- trunk/reactos/dll/win32/user32/windows/cursoricon.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/windows/cursoricon.c [iso-8859-1] Tue Jul 13 21:38:34
2010
@@ -1393,6 +1393,7 @@
{
BITMAP ColorBitmap;
BITMAP MaskBitmap;
+ ICONINFO safeIconInfo;
if(!iconinfo)
{
@@ -1400,13 +1401,15 @@
return (HICON)0;
}
- if(!GetObjectW(iconinfo->hbmMask, sizeof(BITMAP), &MaskBitmap))
+ safeIconInfo = *iconinfo;
+
+ if(!GetObjectW(safeIconInfo.hbmMask, sizeof(BITMAP), &MaskBitmap))
{
return (HICON)0;
}
/* Try to get color bitmap */
- if (GetObjectW(iconinfo->hbmColor, sizeof(BITMAP), &ColorBitmap))
+ if (GetObjectW(safeIconInfo.hbmColor, sizeof(BITMAP), &ColorBitmap))
{
/* Compare size of color and mask bitmap*/
if (ColorBitmap.bmWidth != MaskBitmap.bmWidth ||
@@ -1416,8 +1419,22 @@
SetLastError(ERROR_INVALID_PARAMETER);
return (HICON)0;
}
+ /* Test if they are inverted */
+ if(ColorBitmap.bmBitsPixel == 1)
+ {
+ if(MaskBitmap.bmBitsPixel != 1)
+ {
+ safeIconInfo.hbmMask = iconinfo->hbmColor;
+ safeIconInfo.hbmColor = iconinfo->hbmMask;
+ }
+ else
+ {
+ /* Wine tests say so */
+ safeIconInfo.hbmColor = NULL;
+ }
+ }
}
- return (HICON)NtUserCreateCursorIconHandle(iconinfo, TRUE);
+ return (HICON)NtUserCreateCursorIconHandle(&safeIconInfo, TRUE);
}
/******************************************************************************